我可以阻止HTTPResponseCache在Cache-Control标头方面表现得像共享缓存吗?

时间:2015-09-04 09:35:21

标签: android http caching cache-control httpresponsecache

我正在尝试在我的应用中使用内置的HTTPResponseCache(通过HTTPURLConnection API发出请求)但是在尝试使用{{来缓存请求的任何响应时遇到问题包括1}}标题。

我可以让它在所有缓存响应的唯一方法是在服务器Authorization响应头中明确地放置'public'(Cache-Control可能有效也没有尝试,但明确地将s-maxage结果放在没有缓存的情况下);但这意味着任何中间代理都会缓存响应以便为其他客户服务,这不是我想要的。

我的理解是,用户代理缓存会默认缓存private标头请求的响应或Authorization标头。似乎private在解释标头而不是用户代理缓存方面就像共享缓存一样。或者我对缓存标准的理解不正确?

有什么方法可以让缓存像用户代理HTTP缓存一样?

这在我的安装代码中:

HTTPResponseCache

我需要在这里做些不同的事吗?或者我可能需要在我的请求中包含一些用户代理信息?

1 个答案:

答案 0 :(得分:0)

虽然我找不到这个特定问题的解决方案,但我通过重构我的HTTP客户端代码来使用Volley(http://developer.android.com/training/volley/index.html)而不是HTTPURLConnection来解决我的问题。 Volley中的缓存工具分别实现到HTTPResponseCache,并实现对用户代理缓存的预期缓存控制头的处理。