问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

OkHttp3入门介绍之Cookie持久化

发布网友 发布时间:2022-10-12 20:23

我来回答

1个回答

热心网友 时间:2023-10-24 20:45

相关文章
1、 OkHttp3入门介绍:https://www.jianshu.com/p/af144d662bfd
2、 OkHttp3入门介绍之Cookie持久化:https://www.jianshu.com/p/23b35d403148

本章主要从以下几个方面介绍:
1、OkHttp3 Cookie内置管理机制介绍
2、基于本地存储的Cookie管理
3、基于内存存储的Cookie管理
4、总结

OkHttp提供了用于管理Cookie的接口 CookieJar ,看一下接口的内部结构:

从上面可以看出, CookieJar 接口提供了 saveFromResponse 、 loadForRequest 两个方法,还有一个内部类默认实现 NO_COOKIES 。
1) saveFromResponse 方法:当网络请求返回结果后,内部会解析Header并获取cookie相关信息,同时回调该方法,此处可以缓存或者持久化cookie,下面看一下调用源码:

2) loadForRequest 方法:当网络请求时,okhttp会通过该方法,获取对应cookie,下面看一下调用源码:

3)如果开发者在初始化 OkHtpClient 时没有自定义CookieJar,默认不会进行cookie操作,看一下 OkHttpClient 的构造器实现;

这里我仿照 android-async-http 的Cookie管理机制 PersistentCookieStore 进行改造;

实现逻辑
1、定义用于管理Cookie的接口 CookieStore ;
2、定义 CookieJarImpl 类实现 CookieJar 接口,然后用 CookieStore 去接管 saveFromResponse 、 loadForRequest 这两个方法;
3、定义 PersistentCookieStore 类实现 CookieStore 接口,用于管理Cookie;
4、将 PersistentCookieStore 对象设置到 OkHttpClient 中;

具体实现
1、定义 CookieStore 接口:

2、定义 CookieJarImpl 类实现 CookieJar 接口,然后用 CookieStore 去接管 saveFromResponse 、 loadForRequest 这两个方法:

3、定义 PersistentCookieStore 类实现 CookieStore 接口,用于管理Cookie;
:这里仿照android-async-http库里的 PersistentCookieStore 实现)

这里面用到了 SerializableCookie ,主要用于序列表cookie对象到对象流中:

4、将 PersistentCookieStore 对象设置到 OkHttpClient 中;

实现逻辑跟 PersistentCookieStore 类似,只是对于Cookie的存储放在了Map中。

今天的主要就是介绍了Cookie的管理,就是从 CookieJar 接口的两个方法入手,然后做了进一步的封装处理, PersistentCookieStore 和 MemoryCookieStore 这两个类的逻辑实现基本一致,喜欢动手的小伙伴完全可以进一步抽象一下。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
传奇世界退师和出师同样能得到声望吗 声望可以转让吗? 传奇世界 声望怎么弄,最快弄声望的方法? 传奇世界 声望问题徒弟问题 天龙八部2中的哪个门派最牛逼啊 天龙八部手游哪个门派厉害 天龙八部手游门派排名 天龙八部里,三大最强门派,第一实至名归! miui13怎么开启dc调光 小米14怎么样小米14有没有DC调光功能【详解】 小米14dc调光是什么意思 汗文皇帝有高台什么意思 去毛刺的原理是什么,什么是去毛刺 平时炒菜的时候为什么要放糖呢? 虫草花的吃法禁忌 虫草花的功效与作用 人们的精神生活离不开物质生活精神产品离不开物质载体什么意思 精神活动离不开物质活动,精神产品离不开物质载体!这句话的依据是什么?怎么理解? 如何理解“精神产品离不开物质载体” 怎么理解人们的精神活动离不开物质活动,精神产品离不开物质载体 鳝鱼有什么功用? 人们的精神生活离不开物质生活精神产品离不开物质载体如何理解,怎么文化是人类社会特有的现象区分。 黄鳝(鳝鱼)一般用来做什么/ 我的有锁iPhoneSE,求大神帮我看看是美国哪个运营商,卡贴弄不出来电信4G网络 一颗豆粒的介绍 一粒豆粒这篇课文中的哪一句话写母亲和两个儿子面临困境。 一颗豆粒的作者的名字 一颗豆粒读后感则么写 2019年六一国际儿童节庆祝活动通知 一颗豆粒 de 读后感 庆祝2019年六一国际儿童节的活动通知 翻译 微夫人之力不及此 羽绒马甲搭配什么衣服最好看?你会怎样搭配呢?可以推荐一下吗? 银行有圆章,但是银行有方章吗,写的什么 圆形印章的文字如果一行写不下,怎么断行到另一行写字啊 想要刻一枚圆形的印章,求篆体字 魏银超 的写法,最好给设计成圆形的 鲜虫草花的禁忌 虫草花的禁忌 200英语怎么读 200英语如何说 夏天怎么运动对身体好 相思一夜情多少,地角天涯未是长什么意思 地角天涯未是长上一句是? 相思一夜情多少,地角天涯未是长。什么意思 屠洪刚唱的《十三枪》歌词全文是什么 “楼上残灯伴晓霜,独眠人起合欢床。相思*多少?地角天涯不是长。”上什么意思? 楼上残灯伴晓雪,独眼人起合欢床,相思整夜情多少,地角天涯不是长。是什么意思 相思一夜多少情,地角天涯不是长什么意思 大连卖活鸡 用ipad发说说怎样显示设备型号 教师自我评价简短 针对劣迹艺人,应该再给他们重新来过的机会吗? 一人牵连了8位明星,他可太会作妖了 春夏秋冬的诗词有哪些