Flutter 使用dio来发起网络请求以及Cookie管理

本文介绍了在Flutter中如何使用dio库发起网络请求,包括创建Dio实例、配置请求和响应数据。同时,详细讨论了Cookie管理,推荐使用CookieJar和CookieManager,并提供了配置示例,以解决在不同场景下保持登录状态的问题。
摘要由CSDN通过智能技术生成

说点儿闲话

Flutter官方建议您使用 dio 来发起网络请求,在学习过程中,也尝试过用dart io中的HttpClient发起的请求,这里主要讲一下dio的使用以及CookieJarCookieManager管理cookie

dio

dio是一个强大易用的dart http请求库,支持Restful APIFormData、拦截器、请求取消、Cookie管理、文件上传/下载……详情请查看 github dio
最新版本请查看:pub.dev dio

pubspec.yaml文件里添加:

dio: ^3.x.x  // 请使用pub上3.0.0分支的最新版本

创建一个Dio实例,并配置它

建议在项目中使用Dio单例,这样便可对同一个dio实例发起的所有请求进行一些统一的配置,比如设置公共header、请求基地址、超时时间等;

在这里,baseUrl 需要单独创建一个共用的BaseUrl.url

class BaseUrl {
  // 配置默认请求地址
  static String url = 'http://xxxxx/'; // 测试环境
}

BaseUrl.url也方便后面Cookie管理用到。

使用默认配置:

Dio dio \= Dio(); // 使用默认配置

// 配置dio实例
dio.options.baseUrl \= BaseUrl.url;
dio.options.connectTimeout \= 5000; //5s
dio.options.receiveTimeout \= 3000;

或者

// 通过传递一个 \`options\`来创建dio实例
Options options \= BaseOptions(
    baseUrl: BaseUrl.url,
    connectTimeout: 50
  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值