rxjava+retrofit网络请求流程

1.构造retrofit实例,进行配置定制,比如callAdapterFactory、convertFactory,以及baseUrl;

2.Retrofit调用create创建一个动态代关键在于创建ServiceMethod;

3.ServiceMethod与接口方法传入的参数共同作用传入OkHttpCall,构成一个Call对象,经过CallAdapterFactory的适配,返回。因此接口方法可以理解为最后获得这个Call对象(真实来说应该是OkHttpCall)。

4.ServiceMethod收集接口方法的参数类型以及对应的注解,组成一个有关网络请求的参数类型集合。

5.RxJava在subscribe()时,最终Call对象调用enqueue,实际最终会调用到OkHttp的RealCall的enqueue方法,进入okhttp的异步请求流程。因此Retrofit的Call对象可以看成是OkHttp的Call的一个封装,但在网络请求获得响应后,OkHttpCall还会对返回的信息进行转置,根据ConvertFactory定义的转置模式进行转换。

 

rxjava+retrofit网络请求流程