API 级别 9 及以上的 AndroidHttpClient 与 HttpUrlConnection

Posted

技术标签:

【中文标题】API 级别 9 及以上的 AndroidHttpClient 与 HttpUrlConnection【英文标题】:AndroidHttpClient versus HttpUrlConnection for API Level 9 and above 【发布时间】:2014-04-01 11:50:54 【问题描述】:

哪个更适合 API 级别 9(姜饼),为什么?使用 androidHttpClient 而不是 HttpUrlConnection 有什么好处吗?

我们将不胜感激任何帮助或指导。

【问题讨论】:

请描述你想做什么。下载图片?与您的服务器同步数据?您发送/接收什么样的数据?你会有多少次往返?数据容易压缩吗?当用户等待数据时,您是在后台服务中还是在 Activity 中发送/接收数据?如果用户切换到另一个 Activity 怎么办?丢弃/取消请求或存储结果以备后用?如果您愿意,可以编辑您的问题(对我们所有人来说都更易读)。 【参考方案1】:

Google doesn't recommend using AndroidHttpClient,仅适用于非常旧的 Android 版本。

但正如您在许多关于 SO 的问题中看到的那样,HttpURLConnection 并不容易使用。它非常低级,没有舒适的界面。你必须非常了解它在内部是如何工作的,如果你运气好的话,当你以错误的方式使用它时会出现异常。

因此,已经为 Android 开发人员开发了许多库。你可以在DavidWebb 找到一个列表(和一个具体的实现顺便说一句)。有一些低级库和一些非常强大的库,它们可以从您那里承担后台处理的负担。

编辑

问:使用 AndroidHttpClient 有什么好处吗?

A:从编程的角度来看,AndroidHttpClient 更容易使用。但正如谷歌所说,由于向后兼容的困难,他们无法改进这个类,而是全力以赴改进 HUC(HttpURLConnection 的缩写)。对我来说,这就像“我们会让 AndroidHttpClient 死掉”。当然,我想这个类将出现在所有未来版本的 Android SDK 中,但是 HUC 在后台做了很多智能的事情,例如透明下载压缩。

tl;dr我不会将 AndroidHttpClient 用于当前的应用开发。

【讨论】:

您好 hgoebl,感谢您的快速回复。使用 AndroidHttpClient 有什么好处/优势吗? 从 v23 开始,AndroidHttpClient 不可用,除非通过外部库。

以上是关于API 级别 9 及以上的 AndroidHttpClient 与 HttpUrlConnection的主要内容,如果未能解决你的问题,请参考以下文章

完美解决Android 9.0以上HTTP网络请求被限制问题

API 级别 < 11 中的 ObjectAnimator

从 API 级别 < Android 26 (Oreo) 的 RGB 值创建颜色对象

Celeryd - 发送有关日志级别错误及以上的电子邮件

Marshmallow 及以上版本的许可证验证库

API 级别低于 9 的 android:filterTouchesWhenObscured 的类似物