【问题标题】:How disk cache works using OkHttp with Picasso磁盘缓存如何使用 OkHttp 和 Picasso
【发布时间】:2015-11-15 11:58:04
【问题描述】:

我正在使用 Picasso 库来加载图像。我知道毕加索没有任何磁盘缓存,而是使用 Http Library Cache 实现(在我的例子中是OkHttp)。我对OkHttp 如何管理基于磁盘的缓存有几个问题: - 如果服务器不发送任何缓存控制标头,客户端 (okHttp) 是否总是向服务器请求图像? - okHttp 客户端是否使用 last-modified 标头来确定是否需要下载新图像。

在我们的例子中,服务器没有发送任何缓存控制标头,但是我不想一直下载图像。如果服务器上的图片发生了变化,最后修改的时间戳也会改变,可以用来判断图片是否更新,然后客户端应该下载图片。

在这种情况下不实现缓存控制标头的另一个原因是,如果缓存控制标头说 10 天内不下载图像,但是如果图像在 5 天后更新,客户端将无法获取新图像。

任何广泛使用OkHttp 的人都可以告诉我,如果服务器上的图像已更新并且现在是下载它的正确时间,这个库是如何找到的?

谢谢

【问题讨论】:

    标签: android caching picasso okhttp


    【解决方案1】:

    没有任何缓存标头,OkHttp 将回退到启发式。网络上有很多关于缓存规则的解释,但this one 最能说明 OkHttp 是如何做到的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-21
      • 2015-10-01
      • 2015-11-25
      • 2018-08-22
      • 2014-09-23
      • 2016-03-16
      • 1970-01-01
      • 2016-06-25
      相关资源
      最近更新 更多