使用OkHttp与Picasso进行磁盘缓存的工作原理

时间:2015-08-21 13:48:13

标签: android caching picasso okhttp

我正在使用Picasso库来加载图片。我知道Picasso没有任何磁盘缓存,而是使用Http Library Cache实现(在我的例子中它是OkHttp)。关于OkHttp如何管理基于磁盘的缓存,我几乎没有问题: - 如果服务器没有发送任何缓存控制头,客户端(okHttp)是否总是从服务器请求图像? - okHttp客户端是否使用经过上次修改的标头来确定是否需要下载新映像。

在我们的例子中,服务器没有发送任何缓存控制头,但我不想一直下载图像。如果在服务器上更改了图像,则最后修改的时间戳将被更改,并可用于确定图像是否已更新,然后客户端应下载图像。

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

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

由于

1 个答案:

答案 0 :(得分:3)

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