第一步:
app build.gradle
implementation ‘com.squareup.retrofit2:retrofit:2.9.0’
implementation ‘com.google.code.gson:gson:2.8.6’
implementation ‘com.squareup.retrofit2:converter-gson:2.9.0’
第二步:
public interface GitHubService {
@GET("check_update.php")
Call<RespBase<AppUpdate>> reqNewVersionApk();
}
第三步:
{
OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (Consts.isDebug) {
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("Retrofit2");
//log打印级别,决定了log显示的详细程度
loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.BODY);
//log颜色级别,决定了log在控制台显示的颜色
loggingInterceptor.setColorLevel(Level.INFO);
builder.addInterceptor(loggingInterceptor);
}
OkHttpClient client = builder.build();
Retrofit retrofit = new Retrofit.Builder()
.client(client)
.baseUrl("http://www.xxx.xyz/xxx/app/") //要访问的主机地址,注意以 /(斜线) 结束,不然可能会抛出异常
.addConverterFactory(GsonConverterFactory.create()) //添加Gson
.build();
GitHubService service = retrofit.create(GitHubService.class);
// xxx/app/
Call<RespBase<AppUpdate>> call = service.reqNewVersionApk();
call.enqueue(new Callback<RespBase<AppUpdate>>() {
@Override
public void onResponse(Call<RespBase<AppUpdate>> call, retrofit2.Response<RespBase<AppUpdate>> response) {
RespBase<AppUpdate> appUpdateResp = response.body();
MyLog.print("appUpdateResp.getCode:" + appUpdateResp.getCode());
MyLog.print("appUpdateResp.getdata.apkurl:" + appUpdateResp.getData().getApkUrl());
}
@Override
public void onFailure(Call<RespBase<AppUpdate>> call, Throwable t) {
MyLog.printError(t);
}
});
}