okhttp还是蛮方便的
来源:互联网 发布:关于贼的网络用语 编辑:程序博客网 时间:2024/05/17 23:50
http://blog.csdn.net/u014614038/article/details/51210685
http://blog.csdn.net/u014614038/article/details/51210685
http://blog.csdn.net/u014614038/article/details/51210685
okhttp还是蛮方便的,我比较喜欢的一个就是它支持get请求返回的数据进行缓存,官网介绍得很简单,懂了话用起来确实挺方便的,不懂的话也就比较折腾了,这里简单说一下我的理解与使用小结,不对之处请指出、一起探讨。
使用方法很简单:
我们将请求返回的数据打印出来:
上面图片的1是点击获取的服务器的数据,获取后断开网络然后继续点击,可以看到2还能获取到数据,说明这是缓存的数据,当到3时,差不多就是十秒的时间,可以看到,获取数据失败了,这时已经去服务器获取数据了,缓存被清空,由于断开网络是无法获取到数据的。
除了通过拦截器控制缓存数据之外,还有一个CacheControl可以控制缓存数据,它有两个方法:
new CacheControl.Builder() .maxAge(0, TimeUnit.SECONDS)//这个是控制缓存的最
大生命时间new CacheControl.Builder().maxStale(365, TimeUnit.DAYS)//这个是控制缓存的过时时间
这个跟上面的控制缓存的时间有什么区别?一开始我也不懂,发现如果
.maxAge(0, TimeUnit.SECONDS)设置的时间比拦截器长是不起效果,如果设置比拦截器设置的时间短就会以这个时间为主,我觉得是为了方便控制。.maxStale(365, TimeUnit.DAYS)设置的是过时时间,我觉得okthhp缓存分成了两个来考虑,一个是为了请求时直接拿缓存省流量,一个是为了下次进入应用时可以直接拿缓存。
下面我验证了一下:
设置maxAge为15秒,maxStale40秒,结果如下:
在图1处获取到数据后断开网络,接下来还能获取到缓存数据,到2出退出应用,到3出是重新进入应用,这时还是断开网络的状态,可以看到还能获取到数据,到了4处发现获取不到数据了。
按道理来说在3处已经超过15秒了应该获取不到数据了可是结果还能获取到数据,到了4时已经超过40秒了,于是缓存清空了。
所以可以知道如果两个都设置了的话,maxStale才是决定缓存过时不过时,过时了才会清空掉,如果只设置maxAge,那么超过maxAg的期限才会被情况,感觉两个的作用是一样。
0 0
- okhttp还是蛮方便的
- phpunit还是蛮简单的,用composer更是方便
- Retrofit的简单封装--更方便的配置okhttp
- Okhttp的借口调用 和Banner实现学习下okhttp还是蛮必要的,本篇博客首先介绍okhttp的简单使用
- 传统MVP用在项目中是真的方便还是累赘?
- 确实还是字典法方便
- 在Delphi里这种格式的报表用FastReport实现起来方便呢还是用StringGrid实现起来方便呢?
- 简单的封装了一个OKHttp网络请求工具类,直接粘贴进去调用使用,很方便
- ORACLE RAC 配置好了,用起来还是挺方便的,但是很担心它的可靠性
- Python我入门了,使用Python生成文本还是挺方便的
- Action类增加_param方法 就是自动判断是 get 还是 post 的方法 ,很方便
- 还是长焦卡片机方便些
- 大家还是要常用用csc,个人感觉有时vs有不少不太方便的东西
- 大家还是要常用用csc,个人感觉有时vs有不少不太方便的东西。
- C++拷贝构造函数详解(转载---原作者写的很好,不过还是放在自己这里查阅起来方便。)
- 对Okhttp的封装Okhttp-utils
- OkHttp的使用介绍
- OkHttp的简单使用
- Android网络打印机的那些事
- 什么是面向对象的JavaScript(四)——多态
- Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP
- [CloudReader] Android 开发中所遇问题归纳(持续更新)
- windowns安装mysql.zip
- okhttp还是蛮方便的
- Java生成xml四种方式
- 八大免费SSL证书-给你的网站免费添加Https安全加密
- 递归算法判断数组是否为一个递增数组
- 二、servlet不同页面共享数据的四中方式
- ROI图像分割
- linux 文件系统简介
- 视频颜色识别
- Redux 入门教程