我正在使用RetureFit2使用缓存拦截器兑现响应
@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();
}
}
但我需要缓存特定的请求而不是全部,如何做到这一点?
public Response intercept(Chain chain)
此处的链包含正在发出的请求。
public Response intercept(Chain chain) {
Request request = chain.request()
}
您可以检查此请求并根据信息采取行动,例如使用request. url()
和request.header()
。
在此处查看有关拦截的更多信息。