术业专攻Android程序员

retrofit+Rxjava,多服务器地址封装.回调接口封装

2018-03-14  本文已影响41人  起个名字好烦呀

retrofit的使用已经有很长时间了.如何引用,自行搜索.

1.当前项目,作为BaseUrl的域名(ip地址)有多个.

封装RetrofitUtils工具类.讲BaseUrl作为Map的key,Retrofit实例对象为Value.

当前是kotlin的写法,核心就是map存储retrofit.

2.网络请求的response需要统一处理

retrofit+Rxjava ,其实就是多一句.addCallAdapterFactory(RxJavaCallAdapterFactory.create()),给Retrofit一个观察者.

重写回调,进行统一处理就好了.obs需要实例化.因为可以使用obs.unsubscribe(),在Activity关闭的时候取消回调事件,防止引发异常.

3.如何重写

书写api的时候,我们定义一个结构类Test(名字自定义)

rspCode,RepDesc是错误码及错误原因.info是详情.

泛型变量info可是是任意内容的实体类.通过api传递

回调中,因为我们强行给apiService添加了Test外层类.所以可以直接指定Subscribe的外层泛型.内层泛型,我们通过集成的方式传递.

于是,可以在onNext中统一的处理返回码.然后通过onsuccess进行回调

demo: https://github.com/QunCheung/Retrofit-Rxjava-CallBack.git

上一篇下一篇

猜你喜欢

热点阅读