前言
网络请求在项目开发中必不可少,封装的好坏很大程度上影响的项目质量,本篇博文 草民-walid 与大家分享一下本人的愚见与rxretrofit框架讲解~
劣质请求框架的表现
1.与业务逻辑严重耦合
2.存在很多复杂冗余代码
3.写法不够傻瓜
4.请求统一处理不佳
…
rxretrofit 框架介绍
技术概要
rxretrofit库采用了rxjava + retrofit 2.0 进行整合封装, retrofit2.0 与 rxjava 在之前文章中都有所介绍,相信大家也都会有所了解,rxjava 与 retrofit的思想就不和大家进行过多的解读了,长话短说,我们开始吧~
依赖module
|
|
目录结构
简单介绍下文件的作用,这里没有优先级,直接从上至下 :
- RetrofitParams :
配置参数,包括超时时间、转换器、拦截器等 - ExceptionCode :
http异常代码 - ServerResultException:
自定义server异常 - ICodeVerify :
codehi合法校验接口,用于服务器code异常校验 - IHttpCallback :
rxjava 订阅callback - IHttpCancelListener :
http 请求取消接口 - IHttpResult :
http数据返回接口,统一规范 - SimpleHttpCallback :
IHttpResult的实现类 - RxRetrogitLog :
log 日志工具类 - HttpManager :
http网络请求管理 - HttpSubscriber :
http 订阅处理
根据目录结构大家对项目应该有了一个整体的认识。
代码解析
库中的代码整体比较简单,草民这里挑出两个重要的类来进行介绍吧~
HttpManager
|
|
重要处理:
- create
rxretrofit库的初始化,建议在Application中进行初始化,通过参数可以清晰的得知,传入了baseurl、code校验与params,从而设置OkHttpClient。 - getApiService
获取api的实例对象。 - toSubscribe
订阅网络请求,调用此方法进行网络请求,在网络请求发起时创建了HttpSubscriber对象,进行rxjava的事件订阅,进行统一处理。
HttpSubscriber
|
|
重要处理:
- onNext
请求成功回调callback。 - onError
请求失败进行统一处理。 - onCancel
对网络请求进行取消订阅,可以在activity destroy中进行取消操作。
rxretrofit 框架使用
前面说了那么多,有的人要吐槽了,bb这么多没有用的,说了半天我还不知道如何使用呢?xx个逼的,草民只是想让大家不仅仅是一个使用者,更想让大家多多的懂得其中的原理,好吧!代码我介绍的也不够完整,在此做个鬼脸,草民惭愧了,下面和大家分享重头戏,使用篇~
初始化
建议初始化在Application中~
|
|
api 声明
|
|
请求调用
|
|
整个框架的使用就这几个最low的步骤,这也仅仅是最low的使用方式,大家也可以参考我提供的demo的使用方式加以封装,毕竟框架封装的好坏是取决于调用是否简单,在傻瓜式代码的路上,草民还在努力,也想和大家一同成长~
项目地址
gitbub :
https://github.com/walid1992/RxRetrofit
gradle :
|
|
结语
RxRetrofit的使用就简单介绍到这里,希望大家多多提意见,草民好加以完善,谢谢~