Retrofit源码解读

  • Post author:
  • Post category:其他


1.重要类介绍

call:

①:创建HTTP网络请求

②:提供了同步和异步的方法 execute() 和 enqueue()

③:生成Request对象 返回请求结果对象

callFactory

①:Call的工厂类

②:默认直接new OkHttpClient()

③:如果需要对 ok 进行详细的设置 需要构建OkHttpClient对象 然后传入

CallAdapter

①:网络请求适配器 用于对Call进行转化 将默认的OkHttpClient转换为适合被不同平台来调用的网络请求执行器形式

②:retrofit会通过运行时的不同平台 然后选择不同的CallAdapter

③:Retrofit中提供了四种CallAdapterFactory

ExecutorCallAdapterFactory 默认

GuavaCallAdapterFactory

Java8CallAdapterFactory

RxJavaCallAdapterFactoy 与RxJava联合使用

③:在默认的ExecuorCallAdapterFactory会使得Call在异步调用时指定的Executor线程上执行回调

CallAdapterFactorise

CallAdapter的工厂

CallBackExecutor 切换线程

回调方法的执行器 用来将回调传递的数据传到UI线程 利用了Handler的机制

ConverterFactories 对数据对象进行切换

①:数据转换器工厂 该对象用于转换数据 *可以用于对数据请求 响应数据 注解参数数据进行转换

②:responseBoayConverter() *完成ResponseBody到实际的返回类型的转换

③:requesBodyConverter() *完成对象到RequestBody的构造

④:检查type如果不是自己能处理的类型 就 return null 因为可以可以添加多个 因为不能处理 return null 还会去执行遍历后面的converter

ServiceMethod

①:一个ServiceMethod对象对应于网络请求接口里的一个方法 用于将我们接口中的方法转换为一个Request对象



版权声明:本文为Libertied原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。