【发布时间】:2017-03-13 12:27:42
【问题描述】:
我在我的 android 应用程序中为 REST API 使用 Retrofit2 和 OKHTTP3。我的要求是我必须缓存请求才能在离线模式下使用应用程序。问题是我能够缓存请求。但是当用户再次上线时,应该从后端重新获取数据,它不应该提供缓存的响应。我怎样才能做到这一点。下面是我的网络拦截器
网络拦截器
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();
}
}
【问题讨论】:
标签: android caching retrofit2 okhttp3 okhttp