当前位置: 首页 > news >正文

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的所有用法。

相关文章:

Flutter dio Http请求之Cookie管理

在应用开发过程中&#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…...

计算机网络的标准化工作及相关组织

一、国际化组织 计算机网络的标准化工作由一些主要的组织来进行管理和推动。以下是几个主要的计算机网络标准化的国际组织及其相关的标准&#xff1a; 1. 国际标准化组织&#xff08;ISO&#xff09;&#xff1a;国际标准化组织负责制定各种行业的标准&#xff0c;包括计算机…...

智能座舱架构与芯片- (11) 软件篇 上

一、智能汽车基础软件平台分类 汽车软件主要分为应用软件和基础软件。应用软件和业务形态高度关联&#xff0c;不同控制器的应用软件之间差异较大。基础软件介于应用软件和硬件之间&#xff0c;用于屏蔽硬件特性、支撑应用软件。可有效地实现应用软件与硬件之间解耦&#xff0…...

2021秋招-算法-递归

算法-递归 教程: ⭐告别递归&#xff0c;谈谈我的一些经验 LeetCode刷题总结-递归篇 基础框架 leetcode刷题 1.leetcode-101. 对称二叉树-简单 101. 对称二叉树 给定一个二叉树&#xff0c;检查它是否是镜像对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。…...

【Django-02】 Model模型和模型描述对象Meta

Model和Meta 概念ModelMetaModel支持的字段类型Meta 属性例子 概念 就是对象的意思&#xff0c;底层一个Model对应一张表&#xff0c;而Meta是Model的内部类&#xff0c;是用来描述Model和数据库表的相关元数据信息&#xff0c;比如主键&#xff0c;排序&#xff0c;unique_ke…...

【华为OD题库-030】阿里巴巴找黄金宝箱(V)-java

题目 一贫如洗的樵夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0-N的箱子&#xff0c;每个箱子上面贴有一个数字.阿里巴巴念出一个咒语数字k(k<N),找出连续k个宝箱数字和的最大值&#xff0c;并输出该最大值。 输入描述 第…...

centos7卸载mongodb数据重新安装时无法安装的问题

如果卸载不干净直接用 sudo find / -name mongo 查询所有关于mongo的文件&#xff0c;然后一个个去删除。 当然最好的办法还是去看日志信息。 直接去查看日志信息 sudo cat /var/log/mongodb/mongod.log 根据提示信息说这个没有权限操作 直接删除即可&#xff0c;都是之前…...

ES6 的 class 类和Typescript 的 class 类的区别

前言 为什么要理解ES6的类和TS类的区别&#xff1a; 都是面向对象的开发它们看着很像但是它们不一样学习明白了&#xff0c;避免混用 ES6 类是 JavaScript 中基于原型的面向对象编程的语法糖&#xff0c;而 TypeScript 类在此基础上增加了强类型检查和其他面向对象编程的特性…...

Android 12.0 默认授予应用权限

Android 12.0 默认授予应用权限 最近接到客户需求提到每当首次点开某个应用时都会弹出申请权限的弹窗&#xff0c;操作起来感觉很麻烦&#xff0c;需要将指定的这个应用默认授予权限&#xff0c;具体修改参照如下&#xff1a; frameworks/base/services/core/java/com/androi…...

Google Earth Engine(GEE)——多源遥感变量筛选(PCA主成分分析),变量筛选/降维处理

简介 很多时候我们需要进行数据的将为和筛选,传统的方法我们可以根绝经验方法进行筛选或者按照变量重要性和相关性进行分析,当然我们可以通过计算多个变量之间的主成分分析来进行变量的筛选,本文已森林生物量分析作为自变量,其它多源遥感变量作为相关性因变量,进行分类对…...

爬虫的http和https基础

HTTP响应状态码响应状态码 下面来看下详细的状态码数值和说明&#xff1a; 200系列&#xff1a; 200 OK&#xff1a;这个是最常见的&#xff0c;也是爬虫工程师最喜欢的&#xff0c;代表你本次的请求顺利拿到了响应&#xff0c;没有任何问题 201 Created&#xff1a;201代表…...

读像火箭科学家一样思考笔记05_思想实验

1. 思想实验室 1.1. 思想实验至少可以追溯到古希腊时期 1.1.1. 从那时起&#xff0c;它们就跨越各个学科&#xff0c;在哲学、物理学、生物学、经济学等领域取得重大突破 1.1.2. 它们为火箭提供动力&#xff0c;推翻政府&#xff0c;发展进化生物学&#xff0c;解开宇宙的奥…...

mac gitee新建工程遇到的一些问题

首先&#xff0c;记录一下mac系统显示隐藏文件夹的快捷键&#xff1a;commandshift句号&#xff0c;可以显示工程目录下的隐藏的git文件夹 一 git报错:‘origin‘does not appear to be a git repository的解决方法 找到工程目录下的.git/config文件发现里边没有remote orig…...

某60区块链安全之Call函数簇滥用实战一学习记录

区块链安全 文章目录 区块链安全Call函数簇滥用实战一实验目的实验环境实验原理实验内容实验过程 Call函数簇滥用实战一 实验目的 学会使用python3的web3模块 学会以太坊Delegatecall漏洞分析及利用 实验环境 Ubuntu18.04操作机 实验工具 python3 实验原理 call 外部调用…...

最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...

openssl+ SM2 + linux 签名开发实例(C++)

文章目录 一、SM2 签名理论基础二、SM2签名开发实例 一、SM2 签名理论基础 SM2是中国国家密码管理局发布的椭圆曲线密码算法标准&#xff0c;用于数字签名、密钥交换和公钥加密等安全通信场景。以下是SM2签名的理论基础相关知识点&#xff1a; 椭圆曲线密码学&#xff08;Elli…...

U4_1:图论之DFS/BFS/TS/Scc

文章目录 一、图的基本概念二、广度优先搜索&#xff08;BFS&#xff09;记录伪代码时间复杂度流程应用 三、深度优先搜索&#xff08;DFS&#xff09;记录伪代码时间复杂度流程时间戳结构BFS和DFS比较 四、拓扑排序一些概念有向图作用拓扑排序 分析伪代码时间复杂度彩蛋 五、强…...

STM32框架之按键扫描新思路

STM32框架之按键扫描新思路 引入代码展示思路分析 我们学习了定时器实现毫秒级/秒级任务框架&#xff0c;这期我们基于任务框架学习按键扫描新思路。 引入 在按键扫描的过程中&#xff0c;最重要的一步就是按键消抖&#xff0c;解决的方法最简单粗暴的就是先扫描一次按键状态&…...

完美解决k8s master节点无法ping node节点中的IP或Service NodePort的IP

1、问题一 使用搭建好了K8S集群&#xff0c;先是node节点加入k8s集群时&#xff0c;用的内网IP&#xff0c;导致master节点无法操作node节点中的pod&#xff08;这里的不能操作&#xff0c;指定是无法查看node节点中pod的日志、启动描述、无法进入pod内部&#xff0c;即 kubec…...

弗洛伊德算法(C++)

目录 介绍&#xff1a; 代码&#xff1a; 结果&#xff1a; 介绍&#xff1a; 弗洛伊德算法&#xff08;Floyd algorithm&#xff09;也称为Floyd-Warshall算法&#xff0c;是一种用于求解所有节点对之间的最短路径的动态规划算法。它使用了一个二维数组来存储所有节点…...

LM386电路噪音大、声音失真?别急着换芯片,先检查这5个地方(附示波器实测对比)

LM386电路噪音大、声音失真&#xff1f;别急着换芯片&#xff0c;先检查这5个地方&#xff08;附示波器实测对比&#xff09; 当你兴奋地搭建完LM386功放电路&#xff0c;却发现喇叭里传出恼人的噪音或是失真的声音时&#xff0c;先别急着怀疑芯片质量问题。作为一款久经考验的…...

隐私计算测试:数据可用不可见时代的新挑战

一、隐私计算浪潮下的测试范式革命在《数据安全法》《个人信息保护法》等法规的刚性约束下&#xff0c;隐私计算技术已成为破解数据价值释放与隐私保护矛盾的核心方案。联邦学习、安全多方计算&#xff08;MPC&#xff09;、可信执行环境&#xff08;TEE&#xff09;等技术的落…...

通过curl命令直接测试Taotoken聊天补全接口的详细步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过curl命令直接测试Taotoken聊天补全接口的详细步骤 在开发或调试大模型应用时&#xff0c;有时我们希望在无需引入完整SDK的轻量…...

工业AI质检的下一站:从MVTec AD到3D点云,聊聊少样本学习与异常合成的实战技巧

工业AI质检的下一站&#xff1a;从MVTec AD到3D点云&#xff0c;聊聊少样本学习与异常合成的实战技巧 在工业质检领域&#xff0c;AI技术正经历从实验室到产线的关键跃迁。当算法工程师们刚为MVTec AD数据集上98%的准确率欢呼时&#xff0c;产线上传来的警报却揭示了残酷现实&a…...

别再为LaTeX里的俄文、西班牙文人名抓狂了!TexStudio/Overleaf双平台保姆级配置指南

LaTeX多语种人名处理全攻略&#xff1a;从编码原理到实战避坑 第一次在LaTeX文档里插入俄文参考文献时&#xff0c;那个红色的编译错误提示让我盯着屏幕发呆了半小时——明明正文里的西文字符显示正常&#xff0c;为什么参考文献里的"Фёдор"就变成了乱码&#x…...

FDA Data MCP:基于MCP协议为AI智能体构建监管数据接口的实践指南

1. 项目概述&#xff1a;FDA Data MCP&#xff0c;一个为AI智能体赋能的监管数据接口如果你在制药、生物技术或医疗器械行业工作&#xff0c;无论是负责合规、质量保证&#xff0c;还是供应链管理&#xff0c;你一定对“FDA数据”这四个字又爱又恨。爱的是&#xff0c;它是评估…...

mysql如何实现读写分离的权限分配_不同用户分别赋予权限

读用户仅授SELECT权限&#xff0c;写用户授SELECT/INSERT/UPDATE/DELETE&#xff0c;禁用系统库权限&#xff0c;REPLICATION SLAVE仅用于从库同步&#xff0c;权限变更需重连生效&#xff0c;跨库查询须显式授权。只给读用户 SELECT 权限&#xff0c;别碰 INSERT/UPDATE/DELET…...

R3nzSkin国服版完整指南:如何在英雄联盟中免费使用所有皮肤

R3nzSkin国服版完整指南&#xff1a;如何在英雄联盟中免费使用所有皮肤 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server R3nzSkin国服特供版是一款专门为…...

淘宝自动化脚本taojinbi:解放双手的智能任务管理方案

淘宝自动化脚本taojinbi&#xff1a;解放双手的智能任务管理方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 淘宝自…...

告别默认标题栏!手把手教你用Tauri 2.0打造高颜值自定义窗口(附完整CSS与Rust代码)

告别默认标题栏&#xff01;手把手教你用Tauri 2.0打造高颜值自定义窗口&#xff08;附完整CSS与Rust代码&#xff09; 在桌面应用开发中&#xff0c;默认的系统标题栏往往成为视觉体验的"短板"。它们不仅风格陈旧&#xff0c;还破坏了应用设计的整体性。想象一下&a…...