您的位置:首页 > 理论基础 > 计算机网络

Android常用http请求框架 简介及现状

2016-08-25 20:30 363 查看
JDK支持的HttpUrlConnection
HttpUrlConnection是JDK里提供的联网API,是最原始最基本的API,大多数开源的联网框架基本上也是基于此进行的封装的。HttpUrlConnection的API简单,体积小,维护方便。在2.3后在不引入第三方网络框架时建议使用HttpUrlConnection而非HttpClient。
Apache支持的HttpClientHttpClient是开源组织Apache提供的Java请求网络框架,其最早是为了方便Java服务器开发而诞生的,是对JDK中的HttpUrlConnection各API进行了封装和简化,提高了性能并且降低了调用API的繁琐,Android因此也引进了这个联网框架,我们不需要导入任何jar或者类库就可以直接使用。值得注意的是Android官方已经宣布不建议使用HttpClient了,我们再开发的时候尽量少用吧。
OkHttp(22347个星星,不二选择,目测能挺10年)
OkHttp是Square公司实现的一个 Java 的 HTTP+SPDY 客户端开发包,需要Android 2.3以上。OKHttp非常高效,支持SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会自动处理常见的网络问题,像二次连接、SSL的握手问题。从Android4.4开始HttpURLConnection的底层实现采用的是OkHttp。

Retrofit(23787个星星,其实他不是HTTP请求框架)Retrofit是Square公司是一个 RESTful的 HTTP 网络请求框架的封装。Retrofit 专注于接口的封装,OkHttp 专注于网络请求的高效,二者分工协作!我们的应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作,在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit 根据用户的需求对结果进行解析的过程。
volley(4407个星星,此为非官方版本,已废弃)早期使用HttpClient,后来使用HttpURLConnection,是谷歌2013年推出的网络请求框架,非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

android-async-http(9972个星星,宝刀未老,江山已逝)Android-Async-Http是专门针对Android在Apache的HttpClient基础上构建的异步的callback-based http client。所有的请求全在UI线程之外发生,而callback发生在创建它的线程中,应用了Android的Handler消息机制。

xUtils(4410个星星,2年未更,人气不再)
Afinal框架(3053个星星,4年未更,苟延残喘)
ThinkAndroid(1793个星星,已废弃)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: