网络请求开源库是一个将网络请求的相关功能封装好的类库,并对外提供Api:
没有网络请求框架之前 App想与服务器进行网络请求交互是一件很痛苦的事:因为Android的主线程不能进行网络请求,还需要另外开一个线程进行请求,然后又要考虑到线程池,缓存等一堆问题。
使用网络请求库后(前人的轮子) 实现网络请求的需求同时不需要考虑:
异步请求线程池缓存blabla同时还:
降低开发难度缩短开发周期使用方便HttpURLConnection 在Android2.2之前:HttpURLConnection 有个重大 Bug:调用 close() 函数会影响连接池,导致连接复用失效;
所以Android2.2之前不建议使用HttpURLConnection
在Android2.2之后:HttpURLConnection默认开启了 gzip 压缩&提高了HTTPS 的性能
HttpClient 优点:相比于HttpURLConnection,更加高效简洁 缺点:结构过于复杂;维护成本高
在5.0版本后被Android官方弃用
网络请求框架本质上是一个将网络请求的相关方法( HttpClient或HttpURLConnection)封装好的类库,并实现另开线程进行请求和处理数据,从而实现整个网络请求模块的功能。具体的关系可看下图:
如今Android中主流的网络请求框架有:
Android-Async-HttpVolleyOkHttpRetrofit下面是简单介绍:
一图让你了解全部的网络请求库和他们之间的区别!