一.概述
1.什么是retrofit
retrofit是现在比较流行的网络请求框架,可以理解为okhttp的加强版,底层封装了Okhttp。准确来说,Retrofit是一个RESTful的http网络请求框架的封装。因为网络请求工作本质上是由okhttp来完成,而Retrofit负责网络请求接口的封装。
本质过程:App应用程序通过Retrofit请求网络,实质上是使用Retrofit接口层封装请求参数、Header、Url等信息,之后由okhttp来完成后续的请求工作。在服务端返回数据后,okhttp将原始数据交给Retrofit,Retrofit根据用户需求解析。
2.优点
- 超级解耦 ,接口定义、接口参数、接口回调不在耦合在一起
- 可以配置不同的httpClient来实现网络请求,如okhttp、httpclient
- 支持同步、异步、Rxjava
- 可以配置不同反序列化工具类来解析不同的数据,如json、xml
- 请求速度快,使用方便灵活简洁
使用
先贴上官方网址 点击跳转…
-
添加Retrofit库的依赖
-
创建 接收服务器返回数据 的类
-
创建 用于描述网络请求 的接口
-
创建 Retrofit 实例
-
创建 网络请求接口实例 并 配置网络请求参数
-
发送网络请求(采用最常用的异步方式)
-
处理服务器返回的数据
1.添加Retrofit库的依赖
//Retrofit库
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
//使用gson解析要用到的
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
//添加 网络权限 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
2.创建 接收服务器返回数据 的类
public class Info {
@SerializedName("code")
private int code;
private String message;
@SerializedName("data")
private Data data;
public class Data{
@SerializedName("name")
private String name;
@SerializedName("url")
private String url;
@SerializedName("picurl")
private String picurl;
public String getName() {
return name;
}