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
。