Retrofit2简明讲解
Retrofit2简明讲解
什么是Retrofit
retrofit是现在比较流行的网络请求框架,可以理解为okhttp的加强版,底层封装了okhttp。准确来说,Retrofit是一个RESTful的http网络请求框架的封装。因为网络请求工作本质上是由okhttp来完成,而Retrofit负责网络请求接口的封装。
本质过程:App应用程序通过Retrofit请求网络,实质上是使用Retrofit接口层封装请求参数,即Header、Url等信息,之后由okhttp来完成后续的请求工作。在服务端返回数据后,okhttp将原始数据交给Retrofit,Retrofit根据用户需求解析。
使用介绍
使用 Retrofit 的步骤共有7个:
步骤1:添加Retrofit库的依赖
步骤2:创建 接收服务器返回数据 的类
步骤3:创建 用于描述网络请求 的接口
步骤4:创建Retrofit实例 并 创建网络请求接口实例
步骤5:发送网络请求(异步 / 同步)
步骤1:添加Retrofit库的依赖
如图所示:
步骤2:创建 接收服务器返回数据 的类
在正式的请求网络数据中,返回的数据的外嵌套部分都是一样的,携带状态码、状态信息、实体数据一起返回,我们可以将它封装一个统一的数据回调类。
1 |
|
步骤3:创建 用于描述网络请求 的接口
这个类就是Retrofit将okhttp请求抽象成java的接口类,用注解描述和配置网络请求参数,封装Url地址和网络数据请求
1 | public interface IOpenAiApi { |
在方法头部添加@POST注解,表示采用post方法访问网络请求,括号内的是请求的地址(Url的一部分) ,其中返回类型是Single<>,表示接收数据的类,ChatCompletionResponse是上面封装的一个接收数据的统一公共类
步骤4:创建Retrofit实例 并 创建网络请求接口实例
1 | IOpenAiApi openAiApi = new Retrofit.Builder() |
步骤5:发送网络请求(异步 / 同步)
1 | public class DefaultOpenAiSession implements OpenAiSession { |