Retrofit--网络通讯框架

1. 使用

2. Retrofit框架的使用实例

3. Retrofit框架的使用流程以及各功能的简单介绍

4. 源码解析

分析时只分析Android平台限实例走的流程
源码解析时希望能跟着代码的流程走一下

    1. Retrofit
      生产平台适配器Platform,并通过Platform生产MainThreadExecutorExecutorCallAdapterFactory,通过外部添加数据解析适配器Converter.Factory

    1. Platform
      根据不同平台初始化不同平台的对应继承子类,此处就是Android类
    • Android
      里面有两个方法:
      1. 一个是生成MainThreadExecutor
      2. 一个是通过MainThreadExecutor生成ExecutorCallAdapterFactory
    • MainThreadExecutor
      执行后会将callback调用的方法返回到UI线程内执行

    1. ExecutorCallAdapterFactory
      对象持有MainThreadExecutor,通过OkHttpCallMainThreadExecutor,生成最终暴露给用户的Call--ExecutorCallbackCall
    • ExecutorCallbackCall
      暴露给用户的最终Call,通过enqueue()方法做网络请求,然后里面根据持有有的OkHttpCall做真正的网络请求,并将最终数据通过MainThreadExecutor回调给用户

    1. Converter.Factory
      做数据请求回的数据解析操作

    1. ServiceMethod
      1. 解析Method,即解析请求方法的注解参数等内容
      2. 生成真正的网络请求OkHttp#Call对象
      3. 通过Converter.Factory解析网络请求返回的数据
      4. 通过ServiceMethod本身生成OkHttpCall
      5. 通过ExecutorCallAdapterFactory获取CallAdapter,进而通过CallAdapterOkHttpCall可获取ExecutorCallbackCall,即是最终暴露给使用者的Call

    1. OkHttpCall
      持有ServiceMethod
      网络请求的中介:
      1. 通过ServiceMethod生成真正的OkHttp#Call
      2. 通过OkHttp#Call做真正的网络请求
      3. 返回的网络数据通过ServiceMethod解析成我们需要的类型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。