Android Network --------------关于Android自带的org.apache.http和apache官方的(第三方的)HttpClient的问题

最近想理一下网络那块,突然发现了Android自带了Httplicent,可是我们平时开发也常用第三方的HttpClient(apache官方的)。由于以前看一些前辈这么用,自己也就跟着用了,但是根本就没考虑这些事。可是最近想整理一下,结果又看到了这个问题。我不知道你们会不会有和我一样的疑问呢?同时apache的东西,为什么Android自带一份,apache自己也有一份呢?并且边个类库是不一样的。

我上网查了一下结果提到的不详细,带着这个问题我就没心情往下整理了。所以一心想弄其来龙去脉,他们哪里不一样。为什么Android上少了那么多的方法类。

开始看Android的文档,没法现什么,只是说在Api22中弃用了它。暂且不说弃用的事。关于HttpClient的没有较多的介绍。所以我就转向apache的官方。查看Apache HttpComponents 里面包含了好几个块。我顺着找找到了HttpComponents Client这一块

技术分享

这是是介绍apache HttpClient的那块其中这一块中有一部分关于part for Android

技术分享

点进去,结果什么都清楚了。

技术分享

上面Background介绍,在谷歌 Android1.0版本的时候,把apache 4.0版本整合进去了。当时4.0也算是一个比较成熟的项目了,Apache官方开始认为Android随着升级会把HttpClient也会升级整合。可是谷歌却没有这么做。所以慢慢的Android就停止维护开发Android里面的HttpClient,而Apache官方的也慢慢的随着维护升级也变成了一个分支。最后Android不维护Android自带的HttpClient并同时拒绝升级apache官方的HttpClient,理由是不兼容。所以Apache 光放就推出了针对Android的HttpClicent。现在是兼容Android里的旧版本Api,防止有冲突。以前可能我们用的时候导入,会发生冲突,到 apache HttpClient 4.3,已经开始兼容Android里的。

以前使用3.X 的commons的版本的用户,apache也强烈建议升级为最新的。

所以,Android api 22中提到的废弃Android HttpClient 我觉得一部分原因也可能是因为这个。Android废弃HttpClient与apache官方提供的HttpClient没有任何关系。我们照样可以继续使用第三方的HttpClient(apache)。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。