OKHttp缓存有效期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OKHttp缓存有效期相关的知识,希望对你有一定的参考价值。
我是OkHttpClient的新手,我不知道如何只存储缓存一周。 因此,当代理更新数据时,它将在1周后在移动设备中更新。
答案
你可以使用MaxAge
的MaxStale
和CacheControl
参数
MaxAge
设置缓存响应的最大年龄。如果缓存响应的年龄超过MaxAge
,则不会使用它,并且将发出网络请求
MaxStale
接受超过其新鲜度生命周期的缓存响应,最多为MaxStale
。如果未指定,则不会使用过时的缓存响应
public Interceptor provideCacheInterceptor(final int maxDays) {
return new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
CacheControl cacheControl = new CacheControl.Builder()
.maxAge(maxDays, TimeUnit.DAYS)
.build();
return response.newBuilder()
.header(Constants.CACHE_CONTROL, cacheControl.toString())
.build();
}
};
}
之后你可以将它添加到你的HttpClient
int MaxCacheDays = 7;
httpClient.addNetworkInterceptor(provideCacheInterceptor(MaxCacheDays));
以上是关于OKHttp缓存有效期的主要内容,如果未能解决你的问题,请参考以下文章