Retrofit
2019-01-30 15:48:41 1 举报
Retrofit源码时序图
作者其他创作
大纲/内容
7.11 responseType
4.addCallAdapterFactory
10 enqueue
10.4 RequestBuilder
动态代理:1.忽略Object类型下的方法2.判断是否为其他平台内需要执行的方法,目前为空实现,可以不理会3(7.2).获取接口方法对应的请求内容的映射 loadServiceMethod4.组建静态代理OkHttp的OkHttpCall对象5.因为默认接口返回的是Okhttp的Call,需要将Call转换为需要的格式,如Observable
7.8 获取返回值类型
10.6 addFormField、addQueryParam...
ServiceMethod
7.14 GsonResponseBodyConverter
7.9 getCallResponseType
CallAdapter
Utils
7.19 解析请求的参数,一个参数对应一个ParameterHandler实现类(实现apply方法),通过变量注解获取数据参数名和参数类型
10.5 调用apply设置上对应的参数
7.2获取接口方法对应的请求内容的映射serviceMethod,该方法有缓存
1.4.this.platform
6.2 adapterFactories 添加默认网络请求适配器,转换成Call
6.build
7.12 创建返回值转换器,在Retrofit的converterFactories中通过返回值类型和注解获取返回值转换器
10.发起enqueue请求
9.1 内部类ExecutorCallbackCall(实现Okhttp Call),传入callbackExecutor(平台默认回调线程池),call(okHttpCall)
策略者模式工厂模式7.5 在Retrofit的adapterFactories中通过返回值和注解类型获取相应适配器
抽象工厂方法7.14 根据gson对象及gson.getAdapter获取返回值转换器
10.7 enqueue
1.2.findPlatform
9. serviceMethod.callAdapter.adapt
RequestBuilder
ExecutorCallAdapterFactory
1.new Builder
10.3 toRequest
2.转换成HttpUrl类型后保存
7.4 createCallAdapter
RealCall
7.10 获取返回值中的泛型类型
Platform
10.2 创建OKhttp请求的Call
ParameterHandler
7.3 build
7.create
3.client
6.1 callbackExecutor 默认回调方法执行器线程池(回调至主线程)
10.9 convert
7.7 callAdapter
9.同过网络请求适配器,将对应的请求行为
7.6 getRawType
10.2 createRawCall
7.21 parseParameterAnnotation
7.16 解析所有注解 instanceof
7.8 responseType
GsonResponseBodyConverter
7.20 parseParameter
2.baseUrl
10.5 apply
10.7 请求网络,并回调接口
7.1 eagerlyValidateMethods
6.2 ExecutorCallAdapterFactory
OkHttpCall
1.1.get
1.获取platform,适配平台
10.8 转换返回值类型
8.OkHttpCall
7.18 parseHeaders
7.5 get
7.10 getParameterUpperBound
7.2 loadServiceMethod
1.3.new Android
7.16 parseMethodAnnotation
7.18 解析请求头,其他:Multipart - isMultipart = trueFormUrlEncoded - isFormEncoded = true
10.8 parseResponse
7.19 ParameterHandler[]
10.9 将ResponseBody转换为对应bean类
Retroift
7.15 responseConverter
5.addConverterFactory
10.9 toResponse
4.设置Api返回值转换适配器工厂
6.3 defaultCallAdapterFactory
7.13 responseBodyConverter
7.12 createResponseConverter
9.1 ExecutorCallbackCall
7.20 解析所有参数7.21 a 解析数据并放入ParameterHandler中b ParameterHandler有url、path(Retrofit.stringConverter 中寻找转换器)、query等设置方法
GsonConverterFactory
3.设置网络请求工厂callFactory
CallAdapter默认在ExecutorCallAdapterFactory中采用匿名类实现
6.1 defaultCallbackExecutor
7.17 解析请求方式和请求地址后半截
5.设置网络请求返回值转换器工厂
7.17 parseHttpMethodAndPath
10.1 enqueue
0 条评论
回复 删除
下一页