首页 > 代码库 > retrofit使用随记

retrofit使用随记

 

1.请求接口

public interface RetrofitApi {    /*注册*/    /*登录*/    @FormUrlEncoded    //post请求带这个    @POST(AppUrl.URL_LOGIN)    Call<User> login(@Field("json") JSONObject jsonObject);     //@Filed或者其他,google     //还有填写字段的方式,这是封装json    /*Web*/    @GET("url")    Call<ResponseBody> getWebData();    //String返回类型用ResponseBody    /*注解url*/    @GET    Call<ResponseBody> getInfo(@Url String url);}

2.使用:每个call只能执行一次,可以每次都重新获取,也可以通过克隆call.clone()获取一个新的执行;

String(get) 返回值

Call<ResponseBody> call = ...;//封装之类网上搜索if (type == 1){            call = ApiFactory.getLiangCaiApi().getWebData();            call.enqueue(new Callback<ResponseBody>() {                @Override                public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {                    ResponseBody bodys = response.body();                    bodys.string;//获取数据                }                @Override                public void onFailure(Call<ResponseBody> call, Throwable t) {                    showToast("失败");                }            });        }else {            call = ApiFactory.getLiangCaiApi().getWebData(getWebUrl());            call.enqueue(new Callback<ResponseBody>() {                @Override                public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {                                    }                @Override                public void onFailure(Call<ResponseBody> call, Throwable t) {                    showToast("失败");                }            });        }

post

Call<LoginBean> call;call = call = ApiFactory.getRetrofitApi().login(getJson());        call.enqueue(new CallBack<LoginBean>() {            @Override            public void onResponse(LoginBean result) {                //result  实体类对象            }            @Override            public void onFailure(String error) {            }        });
/**     * post请求     * */    JSONObject jObject;    private JSONObject getJson() {        jObject = new JSONObject();        try {            jObject.put("name", "111");            jObject.put("password", "123456");        } catch (JSONException e) {            e.printStackTrace();        }        return jObject;    }

3.自定义CallBack

自定义一个自己的MyCallBack继承CallBack

可以通过多态的方式(实体类的基类)在自定义的CallBack里预先处理一些内容

单纯的retrofit,没有使用rxjava

retrofit使用随记