2011-12-19 77 views
8

我需要缓存http响应,并基于此blog post该功能内置到ICS中。但是,我需要支持版本1.6以上的版本,所以在查看需要回溯ICS功能之前是否已经准备好使用库。更好的选择比backporting ICS HttpResponseCache

更新:

下面就来HttpResponseCache链接只支持java.net.HttpURLConnection

二更新:

经过一番研究,它看起来像Apache的HttpClient的不支持caching,需要提醒的是默认的(内存)后端可能是不适合内存受限的Android应用程序是个好主意。根据对Android的支持,Ehcache可能是一个不错的选择。

回答

11

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

谷歌拒绝的问题,但表示愿意帮助我,使反向移植和图书馆。所以我正在努力做到这一点。

此外,HttpClient缓存可能是一个整洁的东西使用。它在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。*)。

+0

谢谢!我最终在4.1中使用了Apache的CachingHttpClient和基于SQLite的CacheStorage,但如果我早一点知道它的话,它将会与'httpclientandroidlib'一起使用。 – 2012-01-04 23:58:44

7

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

另一个好处是它的API与ICS版本相同,因此您可以启用ICS中的内置ICE,并使用candrews的backported版本的pre-ICS代码很少。

+0

我正在拼命寻找一些HttpResponsecache的工作示例。如果您可以向我展示您可能拥有的一些代码片段,那将非常有帮助。 – Rasmus 2012-07-21 07:09:54