Retrofit理解

Retrofit介绍

retrofit让开发者可以面向接口开发,通过在中间加了一层代理,将业务逻辑与实现细节分离,方便了上层开发者。通过接口在运行时生成字节码;接着通过注解拼装HTTP请求;最后包装了OkHttp,实现了对Rxjava、线程的adaption。

Retrofit的使用

1.创建retrofit实例,一般应用中使用单例模式

2.通过一个接口作为http请求的api接口

3.调用api接口


Retrofit源码解析

1.首先看一下Retrofit类里面的create方法

create方法里面使用的动态代理,当我们调用接口方法时会转发到InvocationHandler的invoke方法中去实现

2.下面我们看看ServiceMethod这个类是干什么的

先放张图解

下面是源码

所有的步骤就是MethodAnnotations,ParameterAnnotations,ParameterHandler解析注解,封装到ServiceMethod的成员变量中

3.创建OkhttpCall

根据ServiceMethed拼装Request,然后创建okhttp3中的Call
最后调用的也是okhttp的call的enqueue方法

Http 接口最终转化为了一个okhttp3.Call并将工作交给了 okHttp 去执行

你可能感兴趣的:(Retrofit理解)