Retrofit 2.0 使用教程
搬运自
这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)
网络请求框架 —— Retrofit
前言
- 在Andrroid开发中,网络请求十分常用
- 而在Android网络请求库中,Retrofit是当下最热的一个网络请库
- 下图是它的依赖库

目录
1.简介

注意:
- Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。
- 网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装
本质流程
- App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作
- 在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析
2.使用
使用 Retrofit 的步骤共有7个:
步骤1:添加 依赖
步骤2:创建 接收服务器返回数据的类
步骤3:创建 用于描述网络请求的接口
步骤4:创建 Retrofit 实例
步骤5:创建 网络请求接口实例并配置网络请求参数
步骤6:发送 网络请求(异步 / 同步)
步骤一 前期准备
1)添加依赖
- okHttp依赖
- Gson依赖
1
2
3
4
5
6implementation 'com.squareup.retrofit2:retrofit:2.0.2'
// Retrofit库
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
// Okhttp库
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
//Gson库
2)添加网络权限
AndroidManifest.xml<uses-permission android:name="android.permission.INTERNET"/>
步骤二:创建 接收服务器返回数据的类
接下来看一个实例
获取一下都有哪些大神对 Retrofit 做出了贡献
1)创建 Java 类对象Contrbutor1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36public class Contributor {
/**
* login : JakeWharton
* avatar_url : https://avatars0.githubusercontent.com/u/66577?v=4
* html_url : https://github.com/JakeWharton
*/
private String login; // 人名
private String avatar_url; // 头像的 Url 地址
private String html_url; // 个人 GitHub 主页地址
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getAvatar_url() {
return avatar_url;
}
public void setAvatar_url(String avatar_url) {
this.avatar_url = avatar_url;
}
public String getHtml_url() {
return html_url;
}
public void setHtml_url(String html_url) {
this.html_url = html_url;
}
}
这里使用了GsonFormat进行自动构建类
详情参考:
还在手动写Bean?赶紧来用GsonFormat吧
步骤三 创建 API 接口(GitHub 提供的是 GET 请求)
Retrofit将 Http请求 抽象成 Java接口:采用 注解 描述网络请求参数 和配置网络请求参数
用 动态代理 动态 将该接口的注解“翻译”成一个 Http 请求,最后再执行 Http 请求
注:接口中的每个方法的参数都需要使用注解标注,否则会报错
GetRequest_Interface.interface1
2
3
4
5public interface MainService {
@GET("/repos/square/retrofit/contributors")
Call<List<Contributor>> getCall();
}
—>Retrofit 网络请求接口的注解类型

步骤四,五,六:创建 Retrofit 实例(异步和同步我不太清楚)
1 | private void initData() { |
差不多就是这样了。