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