Retrofit - 7 网络通信流程8步骤 & 7个关键成员变量解析

网络通信八步:
1) 创建retrofit实例。
2) 定义一个网络请求接口并为接口中的方法添加注解。
3) 通过 动态代理 生成 网络请求对象。
4) 通过 网络请求适配器 将 网络请求对象 进行平台适配。
5) 通过 网络请求执行器 发送网络请求。
6) 通过 数据转换器 解析数据。
7) 通过 回掉执行器 切换线程。
8) 用户在主线程处理返回结果。

【源码解析】


使用的构建着模式。七个重要的成员变量

public final class Retrofit {
  // key是Method,也就是我们HTTP的请求方法。  
  // values ServiceMethod,代表网络请求接口中对它方法进行注解之后,
  // 我们要通过解析,然后解析后的对象,我们就叫它ServiceMethod。
  // serviceMethodCache主要用于缓存的,
  // 比如:存储一些网络请求相关配置,网络请求的方法,数据转换器,网络适配器,等等。
  private final Map<Method, ServiceMethod<?, ?>> serviceMethodCache 
           = new ConcurrentHashMap<>();
  // 请求网络OKHTTP的工厂。
  final okhttp3.Call.Factory callFactory;
  // 网络请求的基地址。(相对地址是接口注解当中的)。
  final HttpUrl baseUrl;
  // 数据转换器工厂集合。转换成用户的java对象。
  final List<Converter.Factory> converterFactories;
  // 网络工厂适配器集合
  final List<CallAdapter.Factory> callAdapterFactories;
  // 用于执行回掉的,因为要处理异步的网络请求。
  final @Nullable Executor callbackExecutor;
  // 表示的是一个标志位,它就是说是否立需要即解析接口当中的方法。
  final boolean validateEagerly;
…………



猜你喜欢

转载自blog.csdn.net/androidsj/article/details/79940391
今日推荐