HttpClient和HttpURLConnection

[TOC]
  HttpClient和HttpURLConnection是我们平常请求网络会用到的,无论是我们自己封装的网络请求类还是第三方的网络请求框架,都离不开这两个类库。

HttpClient

  Android SDK中包含了HttpClient。Android 6.0版本直接删除了HttpClient类库。如果仍然想要使用,解决方法就是在相应的module下的build.gradle中加入如下代码:

android{
    useLibrary 'org.apache.http.legacy'
}

HttpURLConnection

  在Android 2.2版本及其之前,HttpURLConnection一直存在着一些令人厌烦的bug。比如说对一个可读的InputStream调用close()方法时,就有可能会导致连接池失效。我们通常的解决方法就是直接禁用连接池的功能。所以,在Android 2.2版本之前使用HttpClient是较好的选择;而在Android 2.3版本及其之后,HttpURLConnection则是最佳的选择,它的API简单,体积较小,因而非常适用于Android项目。HttpURLConnection的压缩和缓存机制可以有效地减少网络访问的流量,在提升速度和省电方面也起到了较大的作用。另外在Android 6.0版本中,HttpClient库被移除了,如果不引用HttpClient,HttpURLConnection则是我们以后唯一的选择。

-
-
-
-
-
-
-
-
-
-
-
-
-
--------------------last line for now--------------------