提问者:小点点

缓存请求时使用的是RetreFit2和okhttp3


我正在使用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();
    }
}

但我需要缓存特定的请求而不是全部,如何做到这一点?


共1个答案

匿名用户

public Response intercept(Chain chain)

此处的链包含正在发出的请求。

public Response intercept(Chain chain) {
    Request request = chain.request()
}

您可以检查此请求并根据信息采取行动,例如使用request. url()request.header()

在此处查看有关拦截的更多信息。