request<T> method
请求类
Implementation
Future<BaseResponse> request<T>(
String url, {
DioMethod method = DioMethod.post,
Map<String, dynamic>? params,
data,
CancelToken? cancelToken,
Options? options,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
const methodValues = {
DioMethod.get: 'get',
DioMethod.post: 'post',
DioMethod.put: 'put',
DioMethod.delete: 'delete',
DioMethod.patch: 'patch',
DioMethod.head: 'head',
};
options ??= Options(method: methodValues[method]);
// 没有网络
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult[0] == ConnectivityResult.none) {
var netError = {
"code": CodeHandle.netError,
"message": "没有网络了",
};
return BaseResponse.fromJson(netError, (json) => null);
}
Response? response;
try {
response = await _dio.request(
url,
data: data,
queryParameters: params,
cancelToken: cancelToken ?? _cancelToken,
options: options,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
} on DioException catch (e) {
LoadingUtils.dismiss();
if (e.type == DioExceptionType.unknown) {
var jsonError = {
"code": CodeHandle.unknownError,
"message": e.error.toString(),
};
return BaseResponse.fromJson(jsonError, (json) => null);
} else if (e.type == DioExceptionType.receiveTimeout) {
var jsonError = {
"code": CodeHandle.receiveTimeoutError,
"message": "请求超时",
};
return BaseResponse.fromJson(jsonError, (json) => null);
} else if (e.type == DioExceptionType.connectionTimeout) {
var jsonError = {
"code": CodeHandle.connectTimeoutError,
"message": "连接超时",
};
return BaseResponse.fromJson(jsonError, (json) => null);
} else if (e.type == DioExceptionType.badResponse) {
var jsonError = {
"code": CodeHandle.badResponse,
"message": "返回出错",
};
return BaseResponse.fromJson(jsonError, (json) => null);
}
// rethrow;
}
return BaseResponse.fromJson(
response != null ? response.data : {}, (json) => null);
}