说点儿闲话
Flutter官方建议您使用 dio
来发起网络请求,在学习过程中,也尝试过用dart io
中的HttpClient
发起的请求,这里主要讲一下dio
的使用以及CookieJar
、CookieManager
管理cookie
。
dio
dio
是一个强大易用的dart http
请求库,支持Restful API
、FormData
、拦截器、请求取消、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