implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
首先把我们的接口放出来UomgAPI - 优启梦免费API数据接口调用服务平台https://api.uomg.com/
这里我们使用的是接口里面的QQ等级查询 - 等级成长值查询 - 优启梦免费API数据接口调用服务平台 (uomg.com)https://api.uomg.com/doc-get.qqdj.html
音乐解析 - 全民K歌 - 优启梦免费API数据接口调用服务平台 (uomg.com)https://api.uomg.com/doc-get.kg.html
随机头像输出 - 优启梦免费API数据接口调用服务平台 (uomg.com)https://api.uomg.com/doc-rand.avatar.html
根据接口的数据我们先创建出相对应的类,下面是qq的,因为查看效果我们只获取部分数据
//这是QQ的
public class Data {
private int code;
private String qq;
private String name;
private String qlogo;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getQlogo() {
return qlogo;
}
public void setQlogo(String qlogo) {
this.qlogo = qlogo;
}
public Lvzuan getLvzuan() {
return lvzuan;
}
public void setLvzuan(Lvzuan lvzuan) {
this.lvzuan = lvzuan;
}
private Lvzuan lvzuan;
class Lvzuan{
private int code;
private int vip;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public int getVip() {
return vip;
}
public void setVip(int vip) {
this.vip = vip;
}
}
}
//这是全民K歌的
public class Data2 {
private int code;
private Data data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
class Data{
private String phonemodel;
private String playurl;
private String pic;
private String song_name;
private String kg_nick;
private int play_num;
public String getPhonemodel() {
return phonemodel;
}
public void setPhonemodel(String phonemodel) {
this.phonemodel = phonemodel;
}
public String getPlayurl() {
return playurl;
}
public void setPlayurl(String playurl) {
this.playurl = playurl;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public String getSong_name() {
return song_name;
}
public void setSong_name(String song_name) {
this.song_name = song_name;
}
public String getKg_nick() {
return kg_nick;
}
public void setKg_nick(String kg_nick) {
this.kg_nick = kg_nick;
}
public int getPlay_num() {
return play_num;
}
public void setPlay_num(int play_num) {
this.play_num = play_num;
}
}
//这是输出男女随机头像的
public class Data3 {
private int code;
private String imgurl;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getImgurl() {
return imgurl;
}
public void setImgurl(String imgurl) {
this.imgurl = imgurl;
}
}
然后创建我们的接口Api
public interface Api {
//get请求
@GET("api/qq.info")
Call<Data> getJsonData(@Query("qq") String qq);
//get请求
@GET("api/get.kg")
Call<Data2> getJsonData2(@Query("songurl") String sort);
//get请求
@GET("api/rand.avatar")
Call<Data3> getJsonData3(@Query("sort") String sort,@Query("format") String json);
}
然后再mainactivity.xml设置三个按钮分别监听三个接口的数据
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
Button qq,qmkg,tx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
voidinit();
//构建Retrofit实例
Retrofit retrofit = new Retrofit.Builder()
//设置网络请求BaseUrl地址
.baseUrl("https://api.uomg.com/")
//设置数据解析器
.addConverterFactory(GsonConverterFactory.create())
.build();
//创建网络请求接口对象实例
Api api = retrofit.create(Api.class);
qq.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/*qq的返回数据*/
Call<Data> dataCall = api.getJsonData("98646451");//这里所指的是我们的qq号
//异步请求
dataCall.enqueue(new Callback<Data>() {
//请求成功回调
@Override
public void onResponse(Call<Data> call, Response<Data> response) {
Data body = response.body();
Log.i(TAG, "name: "+body.getName());
Log.i(TAG, "头像: "+body.getQlogo());
Log.i(TAG, "登录状态: "+body.getCode());
}
//请求失败回调
@Override
public void onFailure(Call<Data> call, Throwable t) {
String message = t.getMessage();
Log.i(TAG, "onFailure: "+message+t);
Log.i(TAG, "onFailure: 失败");
}
});
}
});
qmkg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/*全名K歌的数据*/
Call<Data2> dataCall2 = api.getJsonData2("https://node.kg.qq.com/play?s=YaCv8EYfJunVWYcH");
//异步请求
dataCall2.enqueue(new Callback<Data2>() {
//请求成功回调
@Override
public void onResponse(Call<Data2> call, Response<Data2> response) {
Data2 body = response.body();
// Log.i(TAG, "onResponse:*********** "+body);
// IDNA.Info data = body.getData();
Log.i(TAG, "onResponse: "+body.getCode());
Log.i(TAG, ":1 "+body.getData().getKg_nick());
Log.i(TAG, ":2 "+body.getData().getPhonemodel());
Log.i(TAG, ":3 "+body.getData().getPlayurl());
Log.i(TAG, ":4 "+body.getData().getPic());
Log.i(TAG, ":5"+body.getData().getSong_name());
Log.i(TAG, ":6"+body.getData().getPlay_num());
Log.i(TAG, "onFailure: 成功");
}
//请求失败回调
@Override
public void onFailure(Call<Data2> call, Throwable t) {
String message = t.getMessage();
Log.i(TAG, "onFailure: "+message+t);
Log.i(TAG, "onFailure: 失败");
}
});
}
});
tx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Call<Data3> data3Call = api.getJsonData3("男","json");
data3Call.enqueue(new Callback<Data3>() {
@Override
public void onResponse(Call<Data3> call, Response<Data3> response) {
Data3 body = response.body();
// Log.i(TAG, "onResponse:*********** "+body);
// IDNA.Info data = body.getData();
Log.i(TAG, "onResponse: "+body.getCode());
Log.i(TAG, "onResponse: "+body.getImgurl());
}
@Override
public void onFailure(Call<Data3> call, Throwable t) {
String message = t.getMessage();
Log.i(TAG, "onFailure: "+message+t);
Log.i(TAG, "onFailure: 失败");
}
});
}
});
}
private void voidinit() {
qq=findViewById(R.id.qq);
qmkg=findViewById(R.id.qmkg);
tx=findViewById(R.id.tx);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/qq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="QQ" />
<Button
android:id="@+id/qmkg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="全名K歌" />
<Button
android:id="@+id/tx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="随机获取男女头像" />
</LinearLayout>