我正在尝试使用OKHttp的本机缓存来缓存数据;我的问题是我无法控制服务器端数据,并且响应头Cache-Control将返回“无缓存”值。
是否有拦截请求添加到标头中以缓存使用OkHttp返回的数据? (如果可能的话,我也想缓存特定的请求)。
谢谢! 最好的祝福, 克里斯托弗史蒂文
答案 0 :(得分:2)
OkHttp目前还没有提供打败Cache-Control: no-cache
的机制。 OkHttp将最终验证服务器的响应,但如果服务器说存储的响应仍然良好,则响应主体不需要重新传输。
我们有一个feature request杰出人士需要这样的东西,虽然这很难,因为这可能意味着单个请求会产生多个回复。
答案 1 :(得分:0)
万一其他人迟到了18个月......你现在可以"击败" Cache-Control: no-cache
通过添加拦截器作为网络拦截器(因此它在OkHttp处理之前更新服务器响应)。
在https://github.com/square/okhttp/wiki/Interceptors#rewriting-responses的OkHttp wiki上有一个很好的例子。
希望这有帮助。