我需要在安卓应用程序上下载一个网页,我很难决定是使用安卓Apache HTTP客户端还是使用Java的URLConnection。
有什么想法吗?
发布于 2011-10-12 23:56:18
谷歌已经悄悄地弃用了Apache HTTP客户端,因为Gingerbread:http://android-developers.blogspot.com/2011/09/androids-http-clients.html。虽然他们没有使用废弃的注释标记它,但他们建议您在新的应用程序中使用HttpURLConnection,如:it is where we [Google] will be spending our energy going forward
。
就我个人而言,我不喜欢这个决定,我宁愿坚持使用HttpClient 4.1+,因为它速度更快,错误更少,而且会定期更新。虽然您不能将系统库升级到4.1版,但您可以将HttpClient jar包含到您的Android项目中(作为额外的好处,这将允许您不依赖于Google bug修复和供应商更新)。然而,有一个陷阱:为了防止可能与内置库发生冲突,您应该使用JarJar工具重命名httpclient包。原来已经有人这样做了(重新打包的jar和Android库项目可以下载):
http://code.google.com/p/httpclientandroidlib/
这是针对安卓的HttpClient 4.1的重新打包。Android SDK中的HttpClient版本为4.0beta2。自从4.0测试版以来,HttpClient已经有了几次更新和一些急需的错误修复,比如身份验证缓存。
由于谷歌已经弃用了HttpClient,转而支持Java标准的HttpURLConnection,因此我创建了一个脚本,将Apache的HttpClient的一个现成版本转换为一个安卓库。对 HttpClient的库存更改
的类。*(身份验证)
发布于 2011-03-11 03:27:05
在姜饼和以后的版本中,HttpURLConnection是最好的选择。考虑一下不推荐使用Apache HttpClient。(另请注意,安卓没有使用HttpClient 4.1,另一条评论中提到了这一点。)
如果您遇到Apache HttpClient速度更快的情况,请在此处将其报告为错误:http://code.google.com/p/android/issues/list
https://stackoverflow.com/questions/4799151
复制相似问题