码迷,mamicode.com
首页 > 其他好文 > 详细

retrofit使用随记

时间:2016-10-12 08:54:05      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

 

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使用随记

标签:

原文地址:http://www.cnblogs.com/Jieth/p/5951444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!