对于Android Apps,是否可以使用OkHttpClient为不同的URL设置不同的缓存时间?
例如,我有两个网址:
对于第一个网址,我想设置365天的缓存:
Request request = new Request.Builder()
.cacheControl(new CacheControl.Builder()
.maxStale(365, TimeUnit.DAYS)
.build())
.url("http://www.example.com/getcountries.php")
.build();
对于第二个URL,我想设置3分钟的缓存:
Request request = new Request.Builder()
.cacheControl(new CacheControl.Builder()
.maxStale(3, TimeUnit.MINUTES)
.build())
.url("http://www.example.com/getnews.php")
.build();
能行吗 (有了适当的缓存,调试就很困难)。
谢谢你的支持。
这将起作用,但我认为您需要最大寿命而不是最大失效时间。在时间a写入的缓存响应将一直提供到时间b为止,时间b是从响应的标头中得出的时间。您在max-stale中指定的值将添加到b中,以延长缓存的响应的寿命。您在max-age中指定的值会添加到中,以限制缓存的响应有效的时间。
https://square.github.io/okhttp/4.x/okhttp/okhttp3/-cache-control/-builder/
谢谢杰西。我进行了更改,到目前为止似乎还行!