1.动态代理创建一个接口的代理类
2.通过反射解析每个接口的注解、入参构造 http 请求
3.获取到返回的 http 请求,使用 Adapter 解析成需要的返回值
retrofit基于okHttp封装成RESTFUL网络请求框架,通过工厂模式配置各种参数,通过动态代理、注解实现网络请求。retrofit利用了工厂模式,将分为生产网络请求执行器(callFactory)、回调方法执行器(callbackExecutor)、网络请求适配器(CallAdapterFactory)、数据转换器(converterFactory)等几种工厂。
callFactory负责生产okHttp的call,okHttp通过生成call对象完成同步和异步的http请求。
callbackExecutor通过判断不同的平台,生成对应平台的数据回调执行器。其中android端的回调执行器是通过handler回调数据。
CallAdapterFactory是数据解析工厂,一般我们配置json的数据解析适配器就行。
converterFactory是数据转换的工厂,一般我们配置Rxjava的数据转换就行。
retrofit通过动态代理模式实现接口类配置的注解、参数解析成HTTP对象,最后通过okHttp实现网络请求。