request<T> method

Future<Response<T>> request<T>(
  1. Param param, {
  2. HttpMethodType method = HttpMethodType.post,
  3. HttpRequestToken? cancelToken,
  4. ProgressCallback? onSendProgress,
  5. ProgressCallback? onReceiveProgress,
})

网络请求 method请求方法类型,默认为post, 当发起请求后要中断本次请求可使用cancelToken来终止。 onSendProgress 请求进度 onReceiveProgress 响应进度

Implementation

Future<Response<T>> request<T>(Param param,
    {HttpMethodType method = HttpMethodType.post,
    HttpRequestToken? cancelToken,
    ProgressCallback? onSendProgress,
    ProgressCallback? onReceiveProgress}) {
  // formMap  bodyMap
  FormData? formData;
  var formMap = param.formMap();
  if (formMap != null) {
    param.bodyMap()?.forEach((key, value) {
      formMap[key] = value;
    });
    formData = FormData.fromMap(formMap);
  }
  //bodyObject 不为空bodyMap则不生效
  var dataParam = formData ?? (param.bodyObject ?? param.bodyMap());

  // headerMap
  var headerMap = param.headerMap();
  var option = checkOptions(_httpMethod(method), null);
  option.headers = headerMap;
  //pathMap
  var url = param.url;
  param.pathMap()?.forEach((key, value) {
    url = url.replaceFirst("{$key}", value.toString());
  });
  // var cancelToken = CancelToken();
  // handle?.put(cancelToken);
  return _dio.request<T>(url,
      data: dataParam,
      queryParameters: param.queryMap(),
      options: option,
      cancelToken:
          cancelToken is CancelToken ? cancelToken as CancelToken : null,
      onReceiveProgress: onReceiveProgress,
      onSendProgress: onSendProgress);
}