1. 使用
2. Retrofit框架的使用实例
3. Retrofit框架的使用流程以及各功能的简单介绍
4. 源码解析
分析时只分析Android平台限实例走的流程
源码解析时希望能跟着代码的流程走一下
-
Retrofit
生产平台适配器Platform,并通过Platform生产MainThreadExecutor和ExecutorCallAdapterFactory,通过外部添加数据解析适配器Converter.Factory
-
Retrofit
-
-
Platform
根据不同平台初始化不同平台的对应继承子类,此处就是Android类
- Android
里面有两个方法:
1. 一个是生成MainThreadExecutor类
2. 一个是通过MainThreadExecutor生成ExecutorCallAdapterFactory类 - MainThreadExecutor
执行后会将callback调用的方法返回到UI线程内执行
-
Platform
-
-
ExecutorCallAdapterFactory
对象持有MainThreadExecutor,通过OkHttpCall和MainThreadExecutor,生成最终暴露给用户的Call--ExecutorCallbackCall
- ExecutorCallbackCall
暴露给用户的最终Call,通过enqueue()方法做网络请求,然后里面根据持有有的OkHttpCall做真正的网络请求,并将最终数据通过MainThreadExecutor回调给用户
-
ExecutorCallAdapterFactory
- Converter.Factory
做数据请求回的数据解析操作
- Converter.Factory
-
ServiceMethod
1. 解析Method,即解析请求方法的注解参数等内容
2. 生成真正的网络请求OkHttp#Call对象
3. 通过Converter.Factory解析网络请求返回的数据
4. 通过ServiceMethod本身生成OkHttpCall
5. 通过ExecutorCallAdapterFactory获取CallAdapter,进而通过CallAdapter和OkHttpCall可获取ExecutorCallbackCall,即是最终暴露给使用者的Call
-
ServiceMethod
-
OkHttpCall
持有ServiceMethod
网络请求的中介:
1. 通过ServiceMethod生成真正的OkHttp#Call
2. 通过OkHttp#Call做真正的网络请求
3. 返回的网络数据通过ServiceMethod解析成我们需要的类型
-
OkHttpCall