【问题标题】:Better options than backporting ICS HttpResponseCache比向后移植 ICS HttpResponseCache 更好的选择
【发布时间】:2012-01-24 00:41:05
【问题描述】:

我需要缓存 http 响应,并且基于此 blog post,该功能已内置于 ICS。但是,我需要支持 1.6 及更高版本,因此想看看是否有现成可用的库,然后再查看向后移植 ICS 功能需要什么。

更新:

这里是HttpResponseCache 的链接,它只支持java.net.HttpURLConnection

第二次更新:

经过一些研究,看起来 Apache 的 HttpClient 确实支持 caching,但需要注意的是,默认(内存中)后端对于内存受限的 Android 应用程序可能不是一个好主意。 Ehcache 可能是一个不错的选择,具体取决于它对 Android 的支持。

【问题讨论】:

    标签: android http caching


    【解决方案1】:

    我创建了这个问题,要求将重命名的、向后兼容的 android.net.http.HttpResponseCache 版本添加到兼容性库中:https://code.google.com/p/android/issues/detail?id=23875

    Google 拒绝了这个问题,但愿意帮助我制作反向移植和库。所以我正在尝试这样做。

    此外,HttpClient-Cache 可能是一个很好用的东西。它不能在 Android 上按原样运行,您需要进行一些小修改并重新编译它。见http://comments.gmane.org/gmane.comp.apache.httpclient.user/501

    但是,我建议您尝试https://code.google.com/p/httpclientandroidlib/ - 它是用于 Android 的 HttpClient 和 HttpClient-Cache 的重新打包(重命名)版本。设置起来非常简单(只需包含一个 jar,然后使用 ch.boye.httpclientandroidlib.* 而不是 org.apache.http.*)。

    【讨论】:

    • 谢谢!我最终在 4.1 中将 Apache 的 CachingHttpClient 与基于 SQLite 的 CacheStorage 一起使用,但如果我早点知道的话,我会选择 httpclientandroidlib
    【解决方案2】:

    我已经开始使用 candrews 向后移植的库,我很高兴地报告它可以很好地替代使用 HttpUrlConnection 的 ICS 之前的 Android 应用程序。可通过https://github.com/candrews/HttpResponseCache获取。

    另一个好处是它的 API 与 ICS 版本相同,因此您可以在 ICS 上启用内置 API,并使用非常少的代码使用 candrews 的后向移植版本 pre-ICS。

    【讨论】:

    • 我正在拼命寻找 HttpResponsecache 的一些工作示例。如果您能向我展示一些您可能拥有的代码 sn-ps,那将非常有帮助。
    猜你喜欢
    • 2011-08-07
    • 1970-01-01
    • 2012-04-04
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多