Retrofit简单使用一

网络请求地址
https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=手机号
拆分接口
//网络请求的公共头(retrofit要用公共头必须"/"结尾)
https://tcc.taobao.com/cc/json/
//接口
mobile_tel_segment.htm
//参数
tel

接口类

public interface Api{
@GET("mobile_tel_segment.htm")
Call telphone(@Query("tel") String phone);
}

retrofit的 基本设置

retrofit = new Retrofit.Builder()
        .baseUrl("https://tcc.taobao.com/cc/json/")
        .build();

//怎么调用接口
1、拿到接口类文件对象

Api api = retrofit.create(Api.class);

2、调用抽象接口

Call call = api.telphone("手机号”);

3、处理返回结果

call.enqueue(new Callback() {
    @Override
    public void onResponse(Call call, Response response) {
//请求成功      
  try {
//记住是先string()  再tostring() ,string()是body()的方法
            String str = response.body().string().toString();
            texxtView.setText(str);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void onFailure(Call call, Throwable t) {
//请求失败
    }
});

activity里的代码完整版

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("https://tcc.taobao.com/cc/json/")
        .build();
//怎么调用接口
1、拿到接口类文件对象

Api api = retrofit.create(Api.class);
Call call = api.telphone("手机号”);
call.enqueue(new Callback() {
    @Override
    public void onResponse(Call call, Response response) {
  try {
//记住是string()  而不是tostring()
            String str = response.body().string();
            texxtView.setText(str);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void onFailure(Call call, Throwable t) {
//请求失败
    }
});

再说一个自己遇见的问题,

public interface Api{
@GET("mobile_tel_segment.htm?tel={“phone”}")
Call telphone(@Path("phone") String phone);
}

这里使用占位符在参数上,发现请求数据失败,感觉可能是@Path只能作用在urll路径上,而不能再参数上。

你可能感兴趣的:(Retrofit简单使用一)