南宁网站seo公司哪家好,运城手机网站制作,做网站 php python,深圳建设工程交易集团在应用开发过程中#xff0c;我们进行Http通讯时会使用Cookie进行验证#xff0c;今天我们就着重讲解Flutter 网络请求插件dio的cookie使用。
首先#xff0c;我们要进行插件引用
# HTTP 请求
dio: ^5.1.1
cookie_jar: ^4.0.8
dio_cookie_manager: ^3.0.0# 获取沙盒路径
p…在应用开发过程中我们进行Http通讯时会使用Cookie进行验证今天我们就着重讲解Flutter 网络请求插件dio的cookie使用。
首先我们要进行插件引用
# HTTP 请求
dio: ^5.1.1
cookie_jar: ^4.0.8
dio_cookie_manager: ^3.0.0# 获取沙盒路径
path_provider: ^2.1.1
这里为什么要使用path_provider这个插件呢下面在cookie的储存时会做介绍。
引用完我们执行以下命令
pub get
dio的使用网上有很多详细资料这里就不做过多介绍这里着重讲解一下Cookie的使用。
首先我们创建一个Cookie管理类CookieHandle具体实现方式和解释会在代码中进行详解。
代码如下
import dart:io;
import package:cookie_jar/cookie_jar.dart;
import package:path_provider/path_provider.dart;class CookieHandle {//改为使用 PersistCookieJar在文档中有介绍PersistCookieJar将 cookie保留在文件中因此如果应用程序退出则cookie始终存在除 非显式调用deletestatic PersistCookieJar? _cookieJar;/// cookie保存url 为要储存cookie的某个urlstatic Futurevoid saveCookie(String url) async {Uri uri Uri.parse(url);//获取cookiesFutureListCookie cookies (await CookieHandle.cookieJar).loadForRequest(uri);cookies.then((value) async {/// cookie的储存时存在沙盒路径下(await CookieHandle.cookieJar).saveFromResponse(uri, value);});}/// cookie获取static FuturePersistCookieJar get cookieJar async {if (_cookieJar null) {Directory appDocDir await getApplicationDocumentsDirectory();_cookieJar PersistCookieJar(storage: FileStorage(appDocDir.path));}return _cookieJar!;}/// cookie删除static Futurevoid delete() async {(await CookieHandle.cookieJar).deleteAll();}
}上述便是Cookie的保存、获取和删除。 那我们在dio中如何使用呢
/// 创建Dio网络请求对象
Dio dio Dio(baseOptions);
/// 获取CookieCookieManager 为插件cookie管理类CookieHandle.cookieJar 是获取Cookie
dio.interceptors.add(CookieManager(await CookieHandle.cookieJar));
到此我们就完成了Cookie的所有用法。