gpt4 book ai didi

android - (Android) OkHttpClient 基于URL的缓存(不同url不同缓存)

转载 作者:行者123 更新时间:2023-12-04 04:11:26 25 4
gpt4 key购买 nike

对于Android应用,是否可以使用OkHttpClient为不同的url设置不同的缓存时间?

例如,我有两个网址:

  1. http://www.example.com/getcountries.php

  2. http://www.example.com/getnews.php

对于第一个 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();

会成功吗? (有了缓存,调试很困难)。

感谢您的支持。

最佳答案

这会起作用,但我认为您需要 max-age 而不是 max-stale。在时间 a 写入的缓存响应将一直提供到时间 b,该时间是从响应的 header 派生的。您在 max-stale 中指定的值将添加到 b 以延长缓存响应的生命周期。您在 max-age 中指定的值将添加到 a 以限制缓存响应的有效时间。

https://square.github.io/okhttp/4.x/okhttp/okhttp3/-cache-control/-builder/

关于android - (Android) OkHttpClient 基于URL的缓存(不同url不同缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61653390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com