request<T> method
Future<Response<T> >
request<T>(
- Param param, {
- HttpMethodType method = HttpMethodType.post,
- HttpRequestToken? cancelToken,
- ProgressCallback? onSendProgress,
- 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);
}