1.HttpClient
优点:apache httpclient高效稳定,有很多API
缺点:由于API太多,很难在不破坏兼容性的情况下对它进行升级和扩展,维护成本高,故android 开发团队不愿意在维护该库而是转投更为轻便的httpurlconnection
Apache HttpClient早就不推荐httpclient,5.0之后干脆废弃,后续会删除。6.0删除了HttpClient。Java开发用HttpClient,官方推荐Android开发用HttpUrlConnection。
2.HttpURLConnection
优点:HttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。虽然HttpURLConnection的API提供的比较简单,但是同时这也使得我们可以更加容易地去使用和扩展它。比较轻便,灵活,易于扩展。
缺点:在Android 2.2版本之前,HttpURLConnection一直存在着一些令人厌烦的bug。比如说对一个可读的InputStream调用close()方法时,就有可能会导致连接池失效了。那么我们通常的解决办法就是直接禁用掉连接池的功能。
在android 2.2及以下版本中HttpUrlConnection存在着一些bug,所以建议在android 2.3以后使用HttpUrlConnection,2.3之前使用HttpClient。
3.OkHttp
OkHttp是一个现代,快速,高效的Http client,是一个相对成熟的解决方案,支持HTTP/2以及SPDY