【发布时间】:2016-02-25 01:45:34
【问题描述】:
我知道 okhttp 有缓存机制,我们可以强制它使用缓存或仅从服务器获取信息。但我想知道的是:
-
我们可以给缓存设置一个有效期,这样如果缓存过期了,okhttp会从互联网获取我们需要的信息,而不是我们本地缓存的过时信息?
okhttp能否判断服务器端是否有更新信息,所以即使本地缓存的日期没有过期,它仍然可以从互联网而不是本地缓存中自动获取最新信息?
【问题讨论】:
我知道 okhttp 有缓存机制,我们可以强制它使用缓存或仅从服务器获取信息。但我想知道的是:
我们可以给缓存设置一个有效期,这样如果缓存过期了,okhttp会从互联网获取我们需要的信息,而不是我们本地缓存的过时信息?
okhttp能否判断服务器端是否有更新信息,所以即使本地缓存的日期没有过期,它仍然可以从互联网而不是本地缓存中自动获取最新信息?
【问题讨论】:
是的。 OkHttp 的响应缓存遵循RFC 7234,它有丰富的选项来配置响应的生命周期。客户端或服务器可以指定响应的最长期限。
是的。使用 CacheControl.FORCE_NETWORK 标头来解决可能过时的缓存响应。
【讨论】: