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