浅析Retrofit使用及分发逻辑

2 篇文章 0 订阅
1 篇文章 0 订阅
retrofit是基于okHttp网络请求框架的进一步业务优化后的网络加载库,方便集成使用。

1,retrofit的优势?
(1) ,   retrofit基于接口设计,这样就能简单的根据业务需求定义接口。
(2), retrofit采用注解的方式,可以更简单直观的使用

(3), 更为彻底的解耦, retrofit将业务和能力分开。转化器(如Gson等 针对网络请求,回应数据处理),调用适配器(支持RxJava等调用)

(4), 模块化,支持更多业务拓展,如支持自定义转化器Converter对数据回应解析,支持RxJava等调用


2, retrofit接口设计
针对需要定义的业务,设计其抽象接口(这样其实也就将实际网络请求的参数与需要定义的业务需求绑定了),可以简单创建业务抽象代理后,进行调用。而定义抽象方法是有共性要求,必须要返回Call(这暂且不用关心,内部调用业务方法后,就能直接产生Call,与OkHttp很相似?)


3,retrofit功能主要功能组件

(1)Retrofit  主要业务逻辑入口, 主要依赖CallAdapterFactory(调用适配器), Converter.Factroy(转化器),CallFactory(调用工厂,实际处理网络请求分发,OkHttpClient), callbackExecutor (与CallAdapterFactory结合使用,定义响应回调执行环境,是否主线程等)

(2)CallAdapterFactory  对调用进行适配,比如有RxJava调用方式,可以支持RXjava方式调用处理

(3)Converter.Factory  针对网络回应的数据进行解析,以及不同格式网络报文传输。如支持json数据的请求及返回需要依赖GsonConverterFactory

(4)CallFactory  实际处理调用网络调用能力,我们知道Retrofit网络能力是由OkHttpClient支持,这里也就是可以自定义OKHttpClient

(5)callbackExecutor 定义网络请求回应后回调方法执行环境,(eg,我们通常调用call.equeue(Callback) 决定当前callback执行环境,默认android平台是在主线程中)

4,retrofit调用分发逻辑


(1) retrofit创建业务接口代理

(2) 业务代理接口调用具体业务方法

(3)业务方法中,会将注解参数(网络请求参数)以及方法参数等由serviceMethod统筹,

(4)创建实际网络调用(内部实际调用OkHttp网络能力),

(5)对网络调用OkHttpCall进一步封装适配(通过callAdapter),支持正常调用和RxJava调用方式返回

(6)创建完Call以后,需要调用call,内部通过okhttp网络能力分发,最终在回调处进行控制,在回应报文中通过

Converter进行数据解析(支持json等),最终返回满足业务需求的结果。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值