dio库请求方法
| 属性 |
类型 |
描述 |
| get |
Future |
http GET 请求的便捷方法,它是 [dio.fetch(RequestOptions)] 的别名。 |
| getUri |
Future |
http GET 请求的便捷方法,它是 [dio.fetch(RequestOptions)] 的别名。 |
| post |
Future |
发出http POST 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。 |
| postUri |
Future |
发出http POST 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。 |
| put |
Future |
发出http PUT请求的方便方法,它是[dio.fetch(RequestOptions)]的别名。 |
| putUri |
Future |
发出http PUT请求的方便方法,它是[dio.fetch(RequestOptions)]的别名。 |
| head |
Future |
发起 http HEAD 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。 |
| headUri |
Future |
发起 http HEAD 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。 |
| delete |
Future |
发出 http DELETE 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。 |
| deleteUri |
Future |
发出 http DELETE 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。 |
| patch |
Future |
制作http PATCH 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。 |
| patchUri |
Future |
制作http PATCH 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。 |
| download |
Future |
下载的文件 |
| fetch |
Future |
要求 |
get请求参数
| 属性 |
类型 |
描述 |
| path |
String |
路径<url链接> |
| queryParameters |
Map<String, dynamic> |
查询参数 |
| options |
Options |
选项《每个请求都可以传递一个 [Options] 对象,该对象将与 [Dio.options] 合并》 |
| cancelToken |
CancelToken |
取消令牌《您可以使用取消令牌取消请求。一个令牌可以与不同的请求共享。当调用令牌的 [cancel] 方法时,将取消所有带有此令牌的请求。》 |
| onReceiveProgress |
ProgressCallback |
接收进度《回调监听发送接收数据的进度。 [count] 是已发送接收的字节长度。 [total] 是响应请求正文的内容长度。 1.接收数据时:[total]为请求体长度。 2.接收数据时:如果事先不知道响应体的大小,[total]将为-1,例如:响应数据用gzip压缩或没有content-length header。》 |
get请求实例
Response response;
var dio = Dio();
var url='https://zywi.cn';
response = await dio.get(url);
print(response.data.toString());//打印请求内容
Options 参数
| 属性 |
类型 |
描述 |
| method |
String |
方法 |
| sendTimeout |
int |
发送超时 |
| receiveTimeout |
int |
接收超时 |
| extra |
Map<String, dynamic> |
额外的 |
| headers |
Map<String, dynamic> |
标题,头部信息 |
| responseType |
ResponseType |
响应类型《[responseType] 表示服务器将响应的数据类型,[ResponseType] 中定义的选项为json、stream、plain。默认值为json,当响应的内容类型为’applicationjson’时,dio会自动将响应字符串解析为json对象。如果要接收二进制字节的响应数据,例如下载图像,请使用 stream。如果你想用 String 接收响应数据,请使用 plain。如果要接收原始字节的响应数据,也就是说[Response.data]的类型为List,使用bytes》 |
| contentType |
String |
内容类型《请求内容类型。默认值为 [ContentType.json]。如果你想用’applicationx-www-form-urlencoded’编码请求体,你可以设置ContentType.parse('applicationx-www-form-urlencoded'),[Dio]会自动编码请求体。》 |
| validateStatus |
ValidateStatus |
验证状态 |
| receiveDataWhenStatusError |
bool |
状态错误时接收数据 |
| followRedirects |
bool |
跟随重定向 |
| maxRedirects |
int |
最大重定向 |
| requestEncoder |
RequestEncoder |
请求编码器 |
| responseDecoder |
ResponseDecoder |
最大重定向 |
| listFormat |
Function(int count, int total) |
列表格式 |
Options实例
以流的方式接收响应数据:
Response<ResponseBody> rs;
rs = await Dio().get<ResponseBody>(url,
options: Options(responseType: ResponseType.stream), //设置接收类型为stream
);
print(rs.data.stream); //响应流
以二进制数组的方式接收响应数据:
Response<List<int>> rs
rs = await Dio().get<List<int>>(url,
options: Options(responseType: ResponseType.bytes), //设置接收类型为二进制数组
);
print(rs.data); // 二进制数组
post请求参数
| 属性 |
类型 |
描述 |
| path |
string |
网站链接 |
| data |
|
请求参数 |
| queryParameters |
Map<String, dynamic> |
|
| Options |
Options |
选项 |
| cancelToken |
CancelToken |
取消令牌 |
| onSendProgress |
ProgressCallback |
发送进度 |
| onReceiveProgress |
ProgressCallback |
接收进度 |
post请求实例
response = await dio.post('/test', data: {'id': 12, 'name': 'wendu'});//传入json类型,Options默认为json类型
FormData<表单> 实例
发送 FormData 表单请求
var formData = FormData.fromMap({
'name': 'wendux',
'age': 25,
});
var response = await dio.post('/info', data: formData);//传入表单类型
通过FormData上传多个文件
var formData = FormData.fromMap({
'name': 'wendux',
'age': 25,
'file': await MultipartFile.fromFile('./text.txt', filename: 'upload.txt'),
'files': [
await MultipartFile.fromFile('./text1.txt', filename: 'text1.txt'),
await MultipartFile.fromFile('./text2.txt', filename: 'text2.txt'),
]
});
var response = await dio.post('/info', data: formData);