Я использую Retrofit2 и OKHTTP3 для REST API в своем приложении для Android. Мое требование: я должен кэшировать запросы на использование приложения в автономном режиме. Дело в том, что я могу кэшировать запросы. Но когда пользователь снова подключается к сети, данные должны быть извлечены из серверной части свежими, они не должны обслуживать кешированный ответ. Как я могу этого добиться. Ниже мой сетевой перехватчик
Сетевой перехватчик
public class CachingInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (Util.isOnline()) {
request = request.newBuilder()
.header("Cache-Control", "only-if-cached")
.build();
} else {
request = request.newBuilder()
.header("Cache-Control", "public, max-stale=2419200")
.build();
}
Response response= chain.proceed(request);
return response.newBuilder()
.header("Cache-Control", "max-age=86400")
.build();
}
}