RxJava+retrofit+okhttp+Gson的网络请求,关于封装的思路的解析,个人理解

        用到过网络请求的小伙伴们肯定都用过一些第三方的请求框架,比如okhttp,noHttp,Xutils,等等,这里呢我们先简单归纳一下,毕竟良好的整理习惯是我们做程序员的必备技能,首先我们来看看okhttp,okhttp是基于流的再次封装,是依赖于okio的,另外我们可以在请求的时候添加我们的拦截器,集成的时候在Gradle中引入我们的okhttp依赖即可,另外nohttp可以去看看大佬的微博,介绍的很详细,Xutils则是一款基于AFinal开发的一款较完善的android框架,支持超大文件上传(超过2G),而且本身带的事件注解不受影响,实现了HttpClient为URLConnection,自动回调泛型,有更安全的断点策略等等,用法也很简单,gradle引入就可以用了。今天我们这里面主要是说的Rxjava+retrofit+okhttp+gson的一套网络请求框架,下面就开始我们的设计思路吧。

        首先说一下我们的思路,在用之前我们肯定需要封装自己的请求工具类,这个类里面有什么东西,我们可以自己想一想,第一,我们肯定要去初始化retrofit,网络请求+rxjava才组合成了我们的异步请求,再者,我们也要去初始化用到的okhttp,然后在其中设置我们的拦截器,至于添加什么拦截器,你可以自行考虑,那么就开始gradle引入依赖开始撸码吧。gogogo

第一,引入我们需要的包,如下:

        其中我们遇到的坑可以记录一下,retrofit和retrofit:converter-gson以及retrofit:adapter-rxjava的包的版本要一致,不然building的时候会报错。

接下来我们来写我们的请求工具类,按照思路,先初始化我们的OkHttpClient

        接下来我们来编写我们的拦截器,这边有三个拦截器CacheInterceptor,StethoInterceptor,UserAgentInterceptor,当然这里用了一个单例模式,加上一个同步锁,确保在网络请求的时候单线程请求的安全,这一点我们也不用多说,下面直接来看拦截器部分

为okhttp做我们的网络缓存,代码注释也很清楚,下面接着来看

我们的okhttp初始化添加拦截器就基本完成了,下面我们就可以初始化retrofit了

加入我们的okhttpClient,gson做自动解析到实体类,当我们请求成功直接用就行,十分方便。那么接下去就是我们的调用了,也很简单,就是一个很简单的方法,

        我们用到了我们的http以及我们的接口来设计成一个请求方法,接下来我们就可以结合RxJava来做异步调用了,接着撸,申明我们的接口,加上我们的rxjava做链式调用,整套一步喝成

至此就基本介绍完毕了,更多代码请见github,项目正在上传github,戳我即可

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值