android已缓存 okhttp怎么删除缓存


拦截器如下:云端响应头拦截器用来配置缓存策略


 
 
最后日志拦截器也贴上来吧


 
以下测试Cache-Control的配置在请求头和响应头中都有且一样。
max-stale在请求头设置有效在响应头设置无效。(因为max-stale是请求头设置参数,参考上面的缓存相关的知识第二个链接)
max-stale和max-age同时设置的时候缓存失效的时间按最长的算。
关于max-age和max-stale我这里做了一个測试:
  • 三分钟的时候:重新请求了数据如此循环,如果到了重新请求的节点此时没有网则请求失败。
 
另外关于缓存有一个rxcache也可以试试

网上有许多写OKhttp3缓存的文章例如:
这些文章都很不错,但还是有一些小小的瑕疵这里我参考他们的文章结合自己的实践简单封装了Okhttp3的五种缓存方式供大家参考,如有错誤还请不吝赐教

  1. Interceptor的访问机制:在有网状态下先访问应用拦截器,再访问网络拦截器;而在无网络状态只访问应用拦截器;
  2. 缓存实现思路:在网络拦截器中请求网络数据并缓存到本地而后在应用拦截器中访问本地缓存;
  3. 缓存类别:缓存可分为在线缓存和离线缓存,在线缓存例如客户端在短时间内多次请求网络数据这时就可将在线缓存数据返回,但是要注意这个缓存的有效期不要太长了否则服务端数据妀变了不能及时更新;离线缓存例如在无网络状态下想要客户端还能有数据展示,就需要长时间缓存到本地并在有网状态下及时更新缓存數据;
* 有网读取网络数据无网读取缓存 * 在线缓存有效时读取缓存,无效时读取网络数据 * 有网在线缓存有效时读取缓存无效时读取网络數据;无网直接读取缓存 * 创建OkHttp客户端,并实现多种缓存模式

后记:如有不同见解或疑惑欢迎留言,如果觉得不错可以来个赞!点个赞!

  • Spring Cloud為开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理服务发现,断路器智...

  • iOS网络架构讨论梳理整理中。。 其實如果没有APIManager这一层是没法使用delegate的毕竟多个单...

我要回帖

更多关于 android已缓存 的文章

 

随机推荐