我正在尝试在我的应用中使用内置的HTTPResponseCache
(通过HTTPURLConnection
API发出请求)但是在尝试使用{{来缓存请求的任何响应时遇到问题包括1}}标题。
我可以让它在所有缓存响应的唯一方法是在服务器Authorization
响应头中明确地放置'public'(Cache-Control
可能有效也没有尝试,但明确地将s-maxage
结果放在没有缓存的情况下);但这意味着任何中间代理都会缓存响应以便为其他客户服务,这不是我想要的。
我的理解是,用户代理缓存会默认缓存private
标头请求的响应或Authorization
标头。似乎private
在解释标头而不是用户代理缓存方面就像共享缓存一样。或者我对缓存标准的理解不正确?
有什么方法可以让缓存像用户代理HTTP缓存一样?
这在我的安装代码中:
HTTPResponseCache
我需要在这里做些不同的事吗?或者我可能需要在我的请求中包含一些用户代理信息?
答案 0 :(得分:0)
虽然我找不到这个特定问题的解决方案,但我通过重构我的HTTP客户端代码来使用Volley(http://developer.android.com/training/volley/index.html)而不是HTTPURLConnection来解决我的问题。 Volley中的缓存工具分别实现到HTTPResponseCache,并实现对用户代理缓存的预期缓存控制头的处理。