0
我试图通过OkHttp和Retrofit缓存响应。我知道有几个类似于我的问题,但没有一个能够解决我的问题。使用Retrofit 2和OkHttp 3进行脱机响应缓存
以下是我的负责修改标题的拦截器。现在
private static class CachingControlInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Response originalResponse = chain.proceed(request);
return originalResponse.newBuilder()
.header("Cache-Control", (UtilityMethods.isNetworkAvailable()) ?
"public, max-age=60" : "public, max-stale=604800")
.build();
}
}
,这完全在第一种情况下 -
- Internet连接可用。
- 收到并缓存了有效的响应。
- 断开设备与互联网的连接。
- 发送一分钟内前一个相同的请求 - >应答是像上次一样
- 接下来,发送相同的请求后一分钟内完成 - >无应答(
UnknownHostException
)
这使得第一部分("public, max-age=60"
)完成。
但是,不知何故,"public, max-age=60"
部分根本不起作用。
这部分应该启用okhttp获取一个星期陈旧的数据,当设备脱机,而是,我得到UnknownHostException
。