Retrofit原理解析
1.通过Builder创建Retrofit对象,在该操作中创建了 httpclient、executor、convertadapter、calladapter对象
- httpclient 用于将request对象转换为call对象
- executor 用于进行线程切换
- convertadapter用于将responsebody转换为我们需要的bean
- calladapter用于将call转换为我们想要的call
2.调用retrofit的create方法,根据接口,动态生成实现了相关接口方法的类,
3.执行动态类的xx方法,返回一个ExecutorCallbackCall(封装了Okhttpvall)
- 创建Okhttpcall对象,封装了Okcall
- 解析interface中方法的注解,生成一个ServiceMethod,同时会生成一个Request对象
4.执行ExecutorCallbackCall的execute或enqueue方法,最终会执行到Okcall的相关方法
5.拿到返回的结果后,再利用convertAdapter进行转换,把最终结果返回给调用者