flutter网络请求dio
首先中文官方文档的dio链接Http请求-Dio http库
它已经记录的简单的网络请求方法。
个人使用
在我自己的日常使用中,我的使用方法是封装在一个文件里写方法。
代码如下:
import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
Dio _dio = new Dio();
PostUpdate(String url, int index, int pageSize) {
_dio.options.headers["Token-Source"] = "mobile";
return _dio.post(url,
data: new FormData.fromMap({
"openid": "ouK730Pd7VvLK3X-fBeyFML30w1g",
"page": index,
"page_size": pageSize,
}));
}
PostUpdateFir(String url) {
_dio.options.headers["Token-Source"] = "mobile";
return _dio.post(url,
data: new FormData.fromMap({
"openid": "ouK730Pd7VvLK3X-fBeyFML30w1g",
}));
}
PostSearch(String url) {
_dio.options.headers["Token-Source"] = "mobile";
return _dio.post(url, data: new FormData.fromMap({}));
}
PostSearchres(String url, String name) {
_dio.options.headers["Token-Source"] = "mobile";
return _dio.post(url,
data: new FormData.fromMap({
"name": name,
}));
}
通过设置_dio的options属性来添加headers头部
取post的源码为例
按住Ctrl加鼠标点击查看源码
Future<Response<T>> post<T>(
String path, {
data,
Map<String, dynamic> queryParameters,
Options options,
CancelToken cancelToken,
ProgressCallback onSendProgress,
ProgressCallback onReceiveProgress,
});
BaseOptions({
String method,
this.connectTimeout,
int receiveTimeout,
int sendTimeout,
this.baseUrl,
this.queryParameters,
Map<String, dynamic> extra,
Map<String, dynamic> headers,
ResponseType responseType = ResponseType.json,
String contentType,
ValidateStatus validateStatus,
bool receiveDataWhenStatusError = true,
bool followRedirects = true,
int maxRedirects = 5,
RequestEncoder requestEncoder,
ResponseDecoder responseDecoder,
})