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网络请求被限制问题