有没有一个HttpClient可以自行处理缓存请求?

8
我有一个应用程序需要不断地请求网络上的内容。现在服务器端的实现遵循使用头部信息的 HTTP 缓存标准。我想知道是否有 HttpClient 的扩展版本或其他工具可以存储响应并与头部信息交互,以进行自动缓存。如果没有这样的工具也没关系,如果已经有工具存在,我想跳过实现这个功能。谢谢!
2个回答

9
Apache HttpClient从4.1版本开始引入了CachingHttpClient,但Android默认仅包括4.0.x,并且将来不会维护HttpClient。在我看来,没有任何限制阻止我们手动导入并在Android SDK中使用它。
推荐的方法是使用HttpURLConnection,正如他们在官方博客这里所述。
编辑:
一个好的教程这里 下载页面这里 官网的一条说明这里
引用: 生命周期结束 Commons HttpClient项目现已结束生命周期,不再进行开发。它已被Apache HttpComponents项目中的HttpClient和HttpCore模块所取代,提供更好的性能和更大的灵活性。

祝你好运,我几个月前曾尝试过,但并没有完全成功(似乎只能在运行在80端口的标准Web服务器上工作,而不能在我的自定义服务器上工作)。


CachingHttpClient 看起来非常适合我想要的。我已经找了很多 jar 包,但都找不到可以包含的。您是否建议找到所有所需文件的源代码,然后将它们添加到我的应用程序中? - Bobbake4
1
谢谢,这个工作非常完美,如果我把它缓存到内存中。现在我正在尝试实现一个HttpCacheStorage将缓存写入磁盘。我遇到了问题,因为即使HttpCacheEntry实现了Serializable接口,但当进行writeObject调用时,它仍然无法序列化。我想将此移动到另一个问题,因为我感觉您已经回答了我的原始问题。谢谢。 - Bobbake4
@Bobbake4,很高兴看到你的努力和积极反馈,尽管我将来可能会放弃HttpClient并转向HttpURLConnection。 - yorkw

1
如果我没有记错,Google数据库中有这个函数库。不确定它是否与标头交互。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接