目录
前言
这是第二次改编、之前第一次写这篇博客的时候只是当成笔记记录一下。都没有怎么仔细介绍内容,可能导致一些朋友们没看明白,这次重新组织一下。当然由于内容比较多,不可能太详细。我尽量做到让更多人能够看明白,哈哈 当然 朋友们也要跟着我的步骤一步一步来实现 ,这样会比较好理解。
一、简介
大家都知道Retrofit是对OKHttp的第二次封装,使用上也比较简单。那为什么还要对Retrofit进行封装呢,个人理解主要还是对Retrofit进行更规范的分类,有利于项目的开发与维护,提高网络请求这一块的效率。好了,可以开始跟我走了。。一步一步的走向巅峰,然后再回头来听我吹牛逼。。
二、Retrofit基本使用
(1)在build文件中加入相关依赖
//github地址:https://github.com/square/retrofit
//文档地址:https://square.github.io/retrofit/
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
(2)基本使用
public interface ApiUrl {
//get请求
@GET(Constans.retrofit)
Call<Bean> getRetrofit();
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constans.BaseUrl)
.build();
ApiUrl api = retrofit.create(ApiUrl.class);
Call<Bean> demo = api.getRetrofit();
demo.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
Log.e(TAG, "请求成功信息: "+response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
Log.e(TAG, "请求失败信息: " +t.getMessage());
}
});
目前大部分后台一般会返回JSON数据类型所以我们需要Retrofit 添加JSON支持
//retrofit添加Json解析返回数据
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constans.BaseUrl)
//添加GSON解析:返回数据转换成GSON类型
.addConverterFactory(GsonConverterFactory.create())
.build();
这样就可以解析JSON数据
(3)测试
这里提供测试Url,返回的是JSON数据类型
public final static String BaseUrl = "http://120.78.186.81/api/";
public final static String retrofit = "values/5";
映射返回数据
/**
* {
* "res_code": 200,
* "err_msg": "Web page does not exist",
* "demo": {
* "id": "1001",
* "appid": "1021",
* "name": "sss",
* "showtype": "text"
* }
* }
*/
public class Bean {
@Override
public String toString() {
return "bean{" +
"res_code=" + res_code +
", err_code=" + err_code +
", err_msg='" + err_msg + '\'' +
", demo=" + demo +
'}';
}
private int res_code;
private int err_code;
private String err_msg;
private DemoBean demo;
public int getRes_code() {
return res_code;
}
public void setRes_code(int res_