Flutter Dio网络请求库

dio库请求方法

属性类型描述
getFuture http GET 请求的便捷方法,它是 [dio.fetch(RequestOptions)] 的别名。
getUri Future  http GET 请求的便捷方法,它是 [dio.fetch(RequestOptions)] 的别名。
postFuture 发出http POST 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
postUriFuture 发出http POST 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
putFuture 发出http PUT请求的方便方法,它是[dio.fetch(RequestOptions)]的别名。
putUriFuture 发出http PUT请求的方便方法,它是[dio.fetch(RequestOptions)]的别名。
headFuture 发起 http HEAD 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
headUriFuture 发起 http HEAD 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
deleteFuture 发出 http DELETE 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
deleteUriFuture 发出 http DELETE 请求的简便方法,它是 [dio.fetch(RequestOptions)] 的别名。
patch Future  制作http PATCH 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
patchUri Future  制作http PATCH 请求的简便方法,它是[dio.fetch(RequestOptions)] 的别名。
download Future下载的文件
fetch Future  要求

get请求参数

属性类型描述
pathString路径<url链接>
queryParametersMap<String, dynamic>查询参数
optionsOptions选项《每个请求都可以传递一个 [Options] 对象,该对象将与 [Dio.options] 合并》
cancelTokenCancelToken取消令牌《您可以使用取消令牌取消请求。一个令牌可以与不同的请求共享。当调用令牌的 [cancel] 方法时,将取消所有带有此令牌的请求。》
onReceiveProgressProgressCallback接收进度《回调监听发送接收数据的进度。 [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 参数

属性类型描述
methodString方法
sendTimeoutint发送超时
receiveTimeoutint接收超时
extraMap<String, dynamic>额外的
headersMap<String, dynamic>标题,头部信息
responseTypeResponseType响应类型《[responseType] 表示服务器将响应的数据类型,[ResponseType] 中定义的选项为jsonstreamplain。默认值为json,当响应的内容类型为’applicationjson’时,dio会自动将响应字符串解析为json对象。如果要接收二进制字节的响应数据,例如下载图像,请使用 stream。如果你想用 String 接收响应数据,请使用 plain。如果要接收原始字节的响应数据,也就是说[Response.data]的类型为List,使用bytes
contentTypeString内容类型《请求内容类型。默认值为 [ContentType.json]。如果你想用’applicationx-www-form-urlencoded’编码请求体,你可以设置ContentType.parse('applicationx-www-form-urlencoded'),[Dio]会自动编码请求体。》
validateStatusValidateStatus验证状态
receiveDataWhenStatusErrorbool状态错误时接收数据
followRedirects bool 跟随重定向
maxRedirectsint最大重定向
requestEncoderRequestEncoder请求编码器
responseDecoderResponseDecoder最大重定向
listFormatFunction(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请求参数

属性类型描述
pathstring网站链接
data请求参数
queryParametersMap<String, dynamic>
OptionsOptions选项
cancelTokenCancelToken取消令牌
onSendProgressProgressCallback发送进度
onReceiveProgressProgressCallback接收进度

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);
THE END
喜欢就支持一下吧
点赞6 分享