【问题标题】:Is there an HttpClient that handles caching requests on its own?是否有一个 HttpClient 可以自己处理缓存请求?
【发布时间】:2011-12-15 19:24:49
【问题描述】:

我有一个应用程序需要重复请求网络上的内容。现在,服务器端实现遵循使用标头的 http 缓存标准。我想知道是否有 HttpClient 的扩展版本或其他工具可以存储响应并与标头交互以进行自动缓存。如果没有合适的工具,如果已经有工具,我只想跳过实现它。

谢谢

【问题讨论】:

    标签: java android httpclient http-caching


    【解决方案1】:

    Apache HttpClient 从 4.1 开始确实引入了CachingHttpClient,但是 Android 默认只包含 4.0.x,以后不会维护 HttpClient。从我的角度来看,我没有看到任何阻止我们手动导入它并将其与 Android SDK 一起使用的约束。

    推荐的方式是使用HttpURLConnection,在他们的官方博客here中有说明

    编辑:

    一个不错的教程here
    下载页面here
    来自其官网here的说明:

    生命终结
    Commons HttpClient 项目现已结束,不再开发。它已被其 HttpClient 和 HttpCore 模块中的 Apache HttpComponents 项目所取代,从而提供更好的性能和更大的灵活性。

    祝你好运,几个月前我进行了一次快速尝试,但并没有很成功(它似乎只适用于在端口 80 上运行的标准 Web 服务器,不适用于我的自定义服务器)。

    【讨论】:

    • CachingHttpClient 看起来非常适合我想要的。我一直在四处寻找一个罐子,但找不到可以包含的罐子。您是否建议找到所有所需文件的来源并将它们添加到我的应用程序中?
    • 谢谢,如果我缓存到内存中,这将是完美的。现在我正在尝试实现一个 HttpCacheStorage 来将缓存写入磁盘。我遇到了问题,因为即使 HttpCacheEntry 实现了 Serializable 在进行 writeObject 调用时它也无法序列化。我将把这个转移到另一个问题,因为我觉得你已经回答了我的原作,谢谢。
    • @Bobbake4,很高兴看到你的努力和积极的反馈,尽管我可能会放弃 HttpClient 并在未来转向 HttpURLConnection。
    【解决方案2】:

    如果我没记错的话,谷歌数据图书馆有一个。不确定它是否与标题交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多