request<T> method

Future<BaseResponse> request<T>(
  1. String url, {
  2. DioMethod method = DioMethod.post,
  3. Map<String, dynamic>? params,
  4. dynamic data,
  5. CancelToken? cancelToken,
  6. Options? options,
  7. ProgressCallback? onSendProgress,
  8. ProgressCallback? onReceiveProgress,
})

请求类

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);
}