Dio 曾经允许在 baseOptions 中设置默认 cookie,例如 this。
final BaseOptions dioBaseOptions = BaseOptions(
baseUrl: 'http://192.168.1.19',
headers: {
"Host": "api.example.test",
"Content-Type": "application/json",
},
cookies: [
Cookie('XDEBUG_SESSION', 'PHPSTORM'),
],
);
随着 API 的更新,这似乎不再是这种情况,我们需要使用拦截器(或者有替代方案)?尝试将上面的代码调整为新的 Dio API 我有以下内容,除了我看不到如何将 cookie 添加到 jar 中。
var dio = Dio();
dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
var customHeaders = {
"Host": "api.example.test",
"Content-Type": "application/json",
};
options.headers.addAll(customHeaders);
return options;
}));
var cookieJar=CookieJar();
/// I was expecting something like .add(Cookie(...))
dio.interceptors.add(CookieManager(cookieJar));