我正在尝试缓存我的网络请求数据。我已指定其最大年龄= 60。数据应来自缓存,直到60秒。但是问题是我每次都从缓存中获取数据,而无法再次发送网络请求。我希望数据应在时间过期(即60秒)后来自网络。下面是我的代码,我正在使用翻新技术来缓存请求:
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.cache(new Cache(MyApp.getInstance().getCacheDir(), 5 * 1024 * 1024))
.addInterceptor(new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (hasNetwork(MyApp.getInstance()))
request = request.newBuilder().header("Cache-Control", "public, max-age=" + 60).build();
else
request = request.newBuilder().header("Cache-Control", "public, only-if-cached, max-stale=" + 60 * 60 * 24 * 7).build();
return chain.proceed(request);
}
})
.build();
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.baseUrl("https://reqres.in")
.build();