Я пытаюсь кэшировать данные моего сетевого запроса.Я указал его максимальный возраст = 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();