对比现今主流的网络请求库
1. 为什么要用网络请求开源库?
网络请求开源库是一个将网络请求的相关功能封装好的类库,并对外提供Api:
-
没有网络请求框架之前
App想与服务器进行网络请求交互是一件很痛苦的事:因为Android的主线程不能进行网络请求,还需要另外开一个线程进行请求,然后又要考虑到线程池,缓存等一堆问题。 -
使用网络请求库后(前人的轮子)
实现网络请求的需求同时不需要考虑:- 异步请求
- 线程池
- 缓存
- blabla
同时还:
- 降低开发难度
- 缩短开发周期
- 使用方便
2. 使用前知识了解
2.1 Android实现网络请求的主流方法(SDK自带)
- HttpClient
- HttpURLConnection
2.1.1 二者介绍&对比
-
HttpURLConnection
在Android2.2之前:HttpURLConnection 有个重大 Bug:调用 close() 函数会影响连接池,导致连接复用失效;
-
在Android2.2之后:HttpURLConnection默认开启了 gzip 压缩&提高了HTTPS 的性能
- HttpClient
优点:相比于HttpURLConnection,更加高效简洁
缺点:结构过于复杂;维护成本高 - 在5.0版本后被Android官方弃用
2.2 网络请求库和Android网络请求实现方法的关系
-
网络请求框架本质上是一个将网络请求的相关方法( HttpClient或HttpURLConnection)封装好的类库,并实现另开线程进行请求和处理数据,从而实现整个网络请求模块的功能。具体的关系可看下图:
![](https://i-blog.csdnimg.cn/blog_migrate/d5f1594c46d1122a3861965a1f8bb503.webp?x-image-process=image/format,png)
3. 主流的网络请求库-介绍
- Android-Async-Http
- Volley
- OkHttp
- Retrofit
下面是简单介绍:
网络请求加载 - 介绍
4. 网络请求库- 对比
一图让你了解全部的网络请求库和他们之间的区别!
网络请求库 - 对比
5. 各个主流网络请求库的Github地址
6. 总结
本文对Android的主流网络请求库进行了全面的介绍 & 对比,总的来说,网络请求库没有说哪个最好,只有最合适,只有真的了解其使用场景才能很好的选择网络请求库。
原文链接:http://www.jianshu.com/p/050c6db5af5a