Flutter dio Http请求之Cookie管理

在应用开发过程中,我们进行Http通讯时会使用Cookie进行验证,今天我们就着重讲解Flutter 网络请求插件diocookie使用。

首先,我们要进行插件引用

# 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 Future<void> saveCookie(String url) async {Uri uri = Uri.parse(url);//获取cookiesFuture<List<Cookie>> cookies =(await CookieHandle.cookieJar).loadForRequest(uri);cookies.then((value) async {/// cookie的储存时存在沙盒路径下(await CookieHandle.cookieJar).saveFromResponse(uri, value);});}/// cookie获取static Future<PersistCookieJar> get cookieJar async {if (_cookieJar == null) {Directory appDocDir = await getApplicationDocumentsDirectory();_cookieJar = PersistCookieJar(storage: FileStorage(appDocDir.path));}return _cookieJar!;}/// cookie删除static Future<void> delete() async {(await CookieHandle.cookieJar).deleteAll();}
}

上述便是Cookie的保存、获取和删除。

那我们在dio中如何使用呢

/// 创建Dio网络请求对象
Dio dio = Dio(baseOptions);
/// 获取Cookie,CookieManager 为插件cookie管理类,CookieHandle.cookieJar 是获取Cookie
dio.interceptors.add(CookieManager(await CookieHandle.cookieJar));

到此我们就完成了Cookie的所有用法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS 属性计算过程

CSS 属性计算过程 首先&#xff0c;不知道你有没有考虑过这样的一个问题&#xff0c;假设在 HTML 中有这么一段代码&#xff1a; <body><h1>这是一个h1标题</h1> </body>上面的代码也非常简单&#xff0c;就是在 body 中有一个 h1 标题而已&#xff…

CSDN每日一练 |『多边形的面积』『硬币的面值』『开学趣闻之美食诱惑』2023-11-21

CSDN每日一练 |『多边形的面积』『硬币的面值』『开学趣闻之美食诱惑』2023-11-21 一、题目名称:多边形的面积二、题目名称:硬币的面值三、题目名称:开学趣闻之美食诱惑一、题目名称:多边形的面积 时间限制:1000ms内存限制:256M 题目描述: 给出一个简单多边形(没有缺口)…

Docker快速安装Mariadb11.1

MariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可 MariaDB的目的是完全兼容MySQL&#xff0c;包括API和命令行&#xff0c;使之能轻松成为MySQL的代替品。在存储引擎方面&#xff0c;使用XtraDB来代替MySQL的InnoDB。 Mari…

AIX 系统基线安全加固操作

目录 账号管理 ELK-AIX-01-01-01 口令 ELK-AIX-01-02-01 授权 ELK-AIX-01-03-01 通信协议 IP协议安全 ELK-AIX-03-01-01 ELK-AIX-03-02-01 路由协议安全 补丁管理 ELK-AIX-04-01-01 服务进程和启动 ELK-AIX-05-01-01 设备其他安全要求 登陆超时策略 ELK-AIX-06-01-01 …

Clickhouse初认识

技术主题-clickhouse 一什么是clickHouse 1&#xff09;本质上就是一款数据库管理系统&#xff0c;能提供海量数据的存储和检索 2&#xff09;基于列存储&#xff0c;数据是按照列进行存储的&#xff08;数据格式一样&#xff0c;方便进行压缩&#xff09; 3&#xff09;具备…

基于Cortex®-M4F的TM4C123GH6NMRT7R 32位MCU,LM74900QRGERQ1、LM74930QRGERQ1汽车类理想二极管

一、TM4C123GH6NMRT7R IC MCU 32BIT 256KB FLASH 157BGA Tiva™C系列微控制器为设计人员提供了基于ARMCortex™-M的高性能架构&#xff0c;该架构具有广泛的集成功能以及强大的软件和开发工具生态系统。以性能和灵活性为目标&#xff0c;Tiva™C系列架构提供了一个具有FPU的80…

JS中Cookie的基本使用

JavaScript 创建Cookie&#xff1a; JavaScript 读取 Cookie &#xff1a; JavaScript 修改 Cookie&#xff1a; JavaScript 删除 Cookie &#xff1a; JavaScript Cookie&#xff08;JavaScript 的 Cookie&#xff09;是一种在Web浏览器中存储和检索用户信息的机制。它允许…

人性化的微距LED显示屏备受欢迎

近年来&#xff0c;微距LED显示屏市场需求不断攀升&#xff0c;尤其是LED显示屏厂商不断推陈出新的COB和Mini LED封装技术&#xff0c;价格逐渐趋于亲民。随着智慧城市的崛起&#xff0c;微距LED显示屏成为市场上备受瞩目的热门产品。伴随LED显示屏厂商不断升级产品&#xff0c…

单片机和FreeRTOS上跑机器人ROS的应用

机器人的应用越来越广泛了&#xff0c;大家熟知的稚晖君直接创业搞机器人&#xff0c;可想而至&#xff0c;接下来的十年&#xff0c;机器人绝对是热门的行业。 目前市面上很多机器人都是基于一套叫做ROS的系统开发的&#xff0c;今天就给大家分享一个跑在MCU上&#xff0c;基…

抖店与维格表的对接只需轻松几步

通过数环通&#xff0c;您可以使用不到几分钟的时间即可实现抖店与维格表的对接与集成&#xff0c;从而高效实现工作流程自动化&#xff0c;降本增效&#xff01; 1.产品介绍 维格表是一种数据协作工具&#xff0c;具有多维度表格、实时在线编辑、数据可视化等特点。它可以帮助…

基于Python+OpenCV+Tensorflow图像迁移的艺术图片生成系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统![请添加图片描述](https://img-blog.csdnimg.cn/dbda87069fc14c24b71c1eb4224dff05.png)四. 总结 一项目简介 基于PythonOpenCVTensorfl…

Apache ECharts简介

二十九、Apache ECharts 29.1 介绍 Apache ECharts 是一款基于 JavaScript 的数据可视化图表库&#xff0c;提供直观、生动、可交互、可个性化定制的数据可视化图表。 官网地址&#xff1a;https://echarts.apache.org/zh/index.html 常见效果展示&#xff1a; 1). 柱形图 …

TensorFlow实战教程(三十五)-VS Code配置Python编程和Keras环境及手写数字识别(基础篇)

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章利用Keras构建无监督学习Autoencoder模型并实现聚类分析。这篇文章将介绍基础知识,因为很多读者咨询我如何用VS Code配置Keras深度学习环境,并对比常用的深度学习框架,最后普及手写数字识…

NodeMCU ESP8266构建Web Server网页端控制设备

NodeMCU ESP8266构建Web Server网页端控制设备 前言 NodeMCU ESP8266 内部集成了TCP/IP协议栈&#xff0c;可以快速构建网络功能&#xff0c;搭建联网应用的硬件平台&#xff1b; ESP8266可以作为WiFi接入点&#xff08;Station&#xff09;&#xff0c;这样可以方便连接互联…

时间管理的高效提升措施

时间管理的高效提升措施&#xff1a; 制定计划&#xff1a;每天早上花几分钟规划当天的工作和任务&#xff0c;列出要完成的任务清单&#xff0c;并按照优先级排序。这有助于更好地掌握时间&#xff0c;避免被琐碎的事情所困扰&#xff0c;并保证时间的有效利用。 设定目标&a…

网站SSL证书过期了

当网站的SSL证书到期时&#xff0c;这可能会对网站的安全性和可信度产生负面影响。SSL证书是保证网站安全连接的重要组成部分&#xff0c;它通过加密传输数据&#xff0c;确保用户与网站之间的信息传输安全可靠。然而&#xff0c;一旦SSL证书过期&#xff0c;可能会引发一系列问…

VM——绘制亮度均匀性曲线

1、需求:检测汽车内饰氛围灯的亮度均匀性,并绘制均匀性曲线 2、结果: 3、方法: 主要分为3步 (1)提取氛围灯ROI,忽略背景 (2)对提取到的ROI图进行切片处理,计算出每个切片的亮度均值 (3)绘制均匀性曲线 3.1 提取氛围灯ROI step1: 转成黑白图 step2:通过blob和…

想要保护服务器的安全,使用哪个软件比较好?

随着互联网的发展普及&#xff0c;网络安全问题也越发凸显&#xff0c;相信不少使用服务器的用户&#xff0c;有遇到过或是听过服务器被入侵导致数据丢失或是被植入病毒木马程序被用来挖矿的情况。那么面对这类情况&#xff0c;我们该如何做好安全工作来保障我们服务器的使用安…

北斗成为全球民航通用卫星导航系统

北斗成为全球民航通用卫星导航系统 日前&#xff0c;包含北斗卫星导航系统&#xff08;以下简称“北斗系统”&#xff09;标准和建议措施的《国际民用航空公约》附件10最新修订版正式生效。这标志着北斗系统正式加入国际民航组织&#xff08;ICAO&#xff09;标准&#xff0c;成…

【Flink】系统架构

DataStream API 将你的应用构建为一个 job graph&#xff0c;并附加到 StreamExecutionEnvironment 。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上&#xff0c;后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task…