Flutter网络请求库DIO入门文档(1),android开发网

本文详细介绍了Flutter的网络请求库DIO的使用,包括配置、请求配置、响应数据、拦截器的实现与应用,以及DIO与其他HTTP客户端的关系。通过示例展示了DIO如何处理上传文件、配置超时、设置代理等操作,并探讨了DIO的错误处理和取消请求的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

});
response = await dio.post(“http/test/upload”, data: formData);

//上传多个文件
formData = FormData.fromMap({
“animal”: “dog”,
“files”: [
await MultipartFile.fromFile(“assets/data/test1.json”, filename: “test1.json”),
await MultipartFile.fromFile(“assets/data/test2.json”, filename: “test2.json”),
]
});
response = await dio.post(“http/test/upload”, data: formData);

3、配置dio

Dio dio = Dio();
// 你可以使用默认配置或传递一个可选 BaseOptions参数来创建一个Dio实例 :
// 配置dio实例
dio.options.baseUrl = “https://www.xx.com/api”;
dio.options.connectTimeout = 5000; //5s
dio.options.receiveTimeout = 3000;

// 或者通过传递一个 options来创建dio实例
BaseOptions options = BaseOptions(
baseUrl: “https://www.xx.com/api”,
connectTimeout: 5000,
receiveTimeout: 3000,
);
dio = Dio(options);

4、请求配置

BaseOptions描述的是Dio实例发起网络请求的的公共配置,而Options类描述了每一个Http请求的配置信息,每一次请求都可以单独配置,单次请求的Options中的配置信息可以覆盖BaseOptions中的配置,下面是BaseOptions的配置项:
{
/// Http method.
String method;

/// 请求基地址,可以包含子路径,如: “https://www.google.com/api/”.
String baseUrl;

/// Http请求头.
Map<String, dynamic> headers;

/// 连接服务器超时时间,单位是毫秒.
int connectTimeout;
/// 2.x中为接收数据的最长时限.
int receiveTimeout;

/// 请求路径,如果 path 以 "http(s)"开始, 则 baseURL 会被忽略; 否则,
/// 将会和baseUrl拼接出完整的的url.
String path = “”;

/// 请求的Content-Type,默认值是"application/json; charset=utf-8".
/// 如果您想以"application/x-www-form-urlencoded"格式编码请求数据,
/// 可以设置此选项为 Headers.formUrlEncodedContentType, 这样[Dio]
/// 就会自动编码请求体.
String contentType;

/// [responseType] 表示期望以那种格式(方式)接受响应数据。
/// 目前 [ResponseType] 接受三种类型 JSON, STREAM, PLAIN.
///
/// 默认值是 JSON, 当响应头中content-type为"application/json"时,dio 会自动将响应内容转化为json对象。
/// 如果想以二进制方式接受响应数据,如下载一个二进制文件,那么可以使用 STREAM.
///
/// 如果想以文本(字符串)格式接收响应数据,请使用 PLAIN.
ResponseType responseType;

/// validateStatus 决定http响应状态码是否被dio视为请求成功, 返回validateStatus
/// 返回true , 请求结果就会按成功处理,否则会按失败处理.
ValidateStatus validateStatus;

/// 用户自定义字段,可以在 [Interceptor]、[Transformer] 和 [Response] 中取到.
Map<String, dynamic> extra;

/// Common query parameters
Map<String, dynamic /String|Iterable/ > queryParameters;
}

5、响应数据

当请求成功时会返回一个Response对象,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值