Retrofit初体验

来源:互联网 发布:方舟生存进化淘宝购买 编辑:程序博客网 时间:2024/06/09 14:39

添加依赖库

    compile 'com.squareup.retrofit2:retrofit:2.2.0'    //gson和jackson任选一个即可    compile 'com.squareup.retrofit2:converter-gson:2.2.0'    compile 'com.squareup.retrofit2:converter-jackson:2.2.0'

创建APIService接口(当然名字可以随便你起)

public interface APIService {    //get请求, " "里面为域名后面的地址,前面最好不要用"/"    @GET("app/customer/class/v2/top/list")    //请求得到的数据为HttpResult<List<HomeTag>>, 当然可以为对象,也可以为集合数据    //测试后发现好像不能用泛型    //方法名随便你自己起    Call<HttpResult<List<HomeTag>>> getResult();}

另外的用法

//使用占位符,@Path("user")指向注解里面的{user}@GET("users/{user}/tags")Call<List<HomeTag>> getResult(@Path("user") String user);//请求参数为字符串Call<HttpResult<List<HomeTag>>> getResult(@Field("content") String content);//请求参数为mapCall<HttpResult<List<HomeTag>>> getResult(@FieldMap Map<String, String> map);
  1. 代码中使用
Retrofit retrofit = new Retrofit.Builder()                .baseUrl(HttpConfig.HOST)//接口的域名,最好后面接"/"                .addConverterFactory(GsonConverterFactory.create())//也可以用其他的json工具                .build();        APIService service = retrofit.create(APIService.class);        Call<HttpResult<List<HomeTag>>> result = service.getResult();        //开启异步请求        result.enqueue(new Callback<HttpResult<List<HomeTag>>>() {            @Override            public void onResponse(Call<HttpResult<List<HomeTag>>> call, Response<HttpResult<List<HomeTag>>> response) {                //TODO                //call,为前面的请求对象                //response,请求后需要的数据就包装在里面                HttpResult<List<HomeTag>> body = response.body();                List<HomeTag> list = body.getPayload();            }            @Override            public void onFailure(Call<HttpResult<List<Object>>> call, Throwable t) {            }        });

是不是so easy!!!

0 0
原创粉丝点击