//使用原生平台的adapter,不然太慢了
//使用了原生平台adapter,无法登录
dio.httpClientAdapter = NativeAdapter();
Dio 的默认教程是不带原生平台的适配器的
1、请求响应太慢,可以尝试添加原生平台的适配器
import 'package:native_dio_adapter/native_dio_adapter.dart';
...
...
dio = Dio(options);
dio.httpClientAdapter = NativeAdapter();
...
...
2、使用了原生 Adapter 后的实例,使用 Cookie 登录的网站无法登录了,比如 V2EX。没啥好的解决办法,我本地写了两个 Dio 的实例,两个实例使用同一个保存 Cookie 的地址 ,登录时使用 无 Adapter 的 Dio 实例,登录后把 Cookie 同步到 有 Adapter 的 Dio 实例
/// 设置cookie
setCookie() async {
if (cookieManager != null) {
dio.interceptors.remove(cookieManager);
}
var cookiePath = await Utils.getCookiePath();
var cookieJar = PersistCookieJar(
ignoreExpires: true,
storage: FileStorage(cookiePath),
);
cookieManager = CookieManager(cookieJar);
dio.interceptors.add(cookieManager!);
}