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