老罗android rxjava,浅谈OkHttp以及Retrofit+RxJava的封装使用

本文探讨了OkHttp相对于HttpUrlConnection和HttpClient的优势,包括支持Http/1.1和Http/2、GZIP压缩、响应缓存等。推荐使用Retrofit+RxJava进行网络请求,因其灵活性和链式编程特性。详细介绍了如何封装Retrofit+RxJava,包括OkHttpInterceptor的实现,以及在无网络时使用缓存的策略。最后,作者分享了写简书的初衷,希望通过分享技术博客来促进学习和进步。
摘要由CSDN通过智能技术生成

1.为什么我们要使用OkHttp?OkHttp有什么优点?

说OkHttp之前我们先说另外两个网络请求库——HttpUrlConnection和HttpClient。在没有OkHttp之前的日子里,他们才是Android用来完成网络请求的类库。那么这两者都有什么优缺点呢? 为什么不再继续使用下去呢?

HttpClient是Apache基金会的一个开源网络库, 功能十分强大, API数量众多, 但是正是由于庞大的API数量使得我们很难在不破坏兼容性的情况下对它进行升级和扩展, 所以Android团队在提升和优化HttpClient方面的工作态度并不积极。

HttpURLConnection是一种多用途, 轻量极的HTTP客户端, 提供的API比较简单, 可以容易地去使用和扩展. 不过在Android 2.2版本之前,HttpURLConnection一直存在着一些令人厌烦的bug. 比如说对一个可读的InputStream调用close()方法时,就有可能会导致连接池失效了。

因此, 一般的推荐是在2.2之前, 使用HttpClient, 因为其bug较少. 在2.2之后, 推荐使用HttpURLConnection, 因为API简单, 体积小, 并且有压缩和缓存机制, 但是在4.4以后Android团队已经把网络请求库更换为OkHttp了。

那么到底OkHttp相比于HttpUrlConnection和HttpClient好在哪里呢?先上个权威、专业的百度百科的介绍。

b5546905ccbc

OkHttp的优点:

1.支持Http/1.1 Http/2 网络协议

2.支持GZIP, 可以压缩下载体积

3.响应缓存可以直接避免重复请求

4.高效、灵活;通过连接池

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值