2014-11-05 86 views
0

我试图用OKHttp的本地缓存缓存数据;我的问题是我无法控制服务器端的数据,并且响应头缓存控制返回一个“无缓存”值。用OKHttp缓存数据

无论如何拦截请求添加一个头缓存使用OkHttp回来的数据? (如果可能的话,我也想缓存特定的请求)。

谢谢! 最好的问候, 克里斯托弗史蒂文

回答

1

OkHttp目前没有提供一个机制来击败Cache-Control: no-cache。 OkHttp将最终验证服务器的响应,但如果服务器说存储的响应仍然很好,那么响应主体将不需要重新传输。

我们有一个feature request杰出的想要类似这样的东西,尽管这很困难,因为这可能意味着一个请求会产生多个响应。

+0

谢谢!我只需要服务器开发人员在获得响应后开始正确缓存或依靠自己的内部缓存机制。 – chocospaz 2014-11-06 14:53:43

0

为了防止其他人在这18个月的晚些时候遇到......您现在可以通过添加一个拦截器作为网络拦截器(因此在OkHttp处理它之前更新服务器响应)来“打败”Cache-Control: no-cache

在OkHttp维基上有一个很好的例子https://github.com/square/okhttp/wiki/Interceptors#rewriting-responses

希望这会有所帮助。