1.倒入依赖
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
2.写一个接口定义Get和Post
public interface BaseService {
@GET
retrofit2.Call<ResponseBody> get(@Url String url, @QueryMap Map<String,String> map);
@POST
retrofit2.Call<ResponseBody> post(@Url String url, @QueryMap Map<String,String> map);
}
3.写联网请求
public class HttpUntils {
private BaseService service;
//callBack方法
private Callback<ResponseBody> callBack=new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
//成功的方法
if (response.isSuccessful()&&response.code()==200){
try {
//解析数据
String data = response.body().string();
lister.success(data);
} catch (IOException e) {
e.printStackTrace();
}
//失败的方法
}else {
lister.fail(response.message());
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
lister.fail(t.getMessage());
}
};
public HttpUntils(){
//初始化Retrofit
Retrofit mRetrofit = new Retrofit
.Builder()
.baseUrl("http://www.zhaoapi.cn/")
.build();
service = mRetrofit.create(BaseService.class);
}
//get请求
public void get(String url, Map<String,String> map){
service.get(url,map).enqueue(callBack);
}
//post请求
public void post(String url, Map<String,String> map){
service.get(url,map).enqueue(callBack);
}
//传递接口
private HttpLister lister;
public void result(HttpLister lister){
this.lister=lister;
}
public interface HttpLister{
void success(String data);
void fail(String error);
}
}