【发布时间】:2018-01-09 10:45:56
【问题描述】:
我正在使用 retrofit2 通过缓存拦截器兑现响应
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
if (NetworkUtil.isConnected(context)) {
return originalResponse.newBuilder()
.header("Cache-Control", "public, max-age=" + MAX_AGE)
.build();
} else {
return originalResponse.newBuilder()
.header("Cache-Control", "public, only-if-cached, max-stale=" + MAX_STALE)
.build();
}
}
但是我需要缓存特定的请求而不是全部,该怎么做?
【问题讨论】:
-
你在
Chain有你的要求,你可以查看url或者你需要的。 -
不确定。但是查看speakerdeck.com/jakewharton/…,您将标题添加到您的调用中,然后在拦截中检查相同的内容并执行所需的操作。检查幻灯片 37 到 43
-
我可以在内部缓存特定请求,而不会覆盖发送到服务器的请求中的“Cache-Control”标头?