java - Apache HTTP 客户端或 URLConnection

标签 java android urlconnection apache-commons-httpclient

我需要在 Android 应用上下载一个网页,我很难决定是使用 Android Apache HTTP 客户端还是 Java 的 URLConnection。

有什么想法吗?

最佳答案

自 Gingerbread 以来,Google 一直默默地弃用 Apache HTTP 客户端:http://android-developers.blogspot.com/2011/09/androids-http-clients.html .虽然他们没有用过时的注释对其进行标记,但他们建议您将 HttpURLConnection 用于新应用程序,因为:这是我们 [Google] 将在未来花费精力的地方

我个人不喜欢这个决定,宁愿坚持使用 HttpClient 4.1+,因为它更快、错误更少并且会定期更新。虽然您不能将系统库升级到 4.1 版,但您可以将 HttpClient jar 包含到您的 Android 项目中(作为额外的好处,这将允许您不依赖 Google 错误修复和供应商更新)。但是有一个陷阱:为了防止可能与内置库发生冲突,您应该使用 JarJar 工具重命名 httpclient 包。原来有人已经这样做了(重新打包的 jar 和 Android 库项目可供下载):

http://code.google.com/p/httpclientandroidlib/

This is a repackaging of HttpClient 4.1 for Android. The version of HttpClient in the Android SDK is 4.0beta2. There have been several updates to HttpClient and some much-needed bugfixes like auth caching since the 4.0beta.

Since Google has deprecated HttpClient in favor of Java standard HttpURLConnection I created a script to convert a stock release of Apache's HttpClient into an Android library.

Changes to stock HttpClient

  • Renamed all packages org.apache.http to ch.boye.httpclientandroidlib
  • Deleted all classes dependent on org.ietf.* (SPNEGO authentication)
  • Replaced org.apache.commons.codec.binary.Base64 with android.util.Base64
  • Created a new class HttpClientAndroidLog to replace org.apache.commons.logging

关于java - Apache HTTP 客户端或 URLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4799151/

相关文章:

java - 通过 API 调用从 Instagram 注销

android - Android 上的 RSA 加密和解密字符串

android - 如何在android电子邮件中插入一个URL

Android Webview NullPointerException

java - Java HttpURLConnection 的编码错误

java - 在 URLConnection 中设置 header 的正确方法是什么?

android - 为 Android 中的 URL 列表请求文件大小和 MIME 类型

java - 我是 WCF 新手。我需要实现一个 WCF Web 服务,其中包含对客户端的回调/事件

java - 有条件地忽略特定属性 DTO

java - 你的 SQL 语法有错误 - hibernate 和 mysql