retrofit的简单使用(请求网络数据)

倒入依赖

implementation 'com.squareup.retrofit2:retrofit:2.0.2'
implementation 'com.squareup.okhttp3:okhttp:3.1.2'
implementation 'com.google.code.gson:gson:2.2.4'
implementation 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'

写一个网络数据的bean类

写一个所有接口都一样的接口头 方便调用

public class Constant {
    public static final String CONSTANT_GET = "https://www.zhaoapi.cn/";
}

写一个接口 继续拼接往接口头后面拼接的接口

public interface Api {
    @GET("product/getProducts")
    Call getCall(@Query("pscid") int id);
}

 MainActivity中的代码

创建一个retrofit对象将大部分一样的接口头部从constant类中拿出

Retrofit build = new Retrofit.Builder().baseUrl(Constant.CONSTANT_GET)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
拼接上Api类中的地址部分
Api api = build.create(Api.class);
拼接上Api类中的id
Call call = api.getCall(1);
请求
call.enqueue(new Callback() {
    @Override
    public void onResponse(Call call, Response response) {

        String title = response.body().getData().get(0).getTitle();
        Toast.makeText(MainActivity.this,title,Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onFailure(Call call, Throwable t) {
        Toast.makeText(MainActivity.this,"失败",Toast.LENGTH_SHORT).show();
    }
});

你可能感兴趣的:(retrofit的简单使用(请求网络数据))