Retrofit2.0学习之Post请求

来源:互联网 发布:云计算的部署方式 编辑:程序博客网 时间:2024/06/08 04:31

前不久刚刚学习了Retrofit的GET请求Retrofit2.0之GET请求,今天又大致学习了一下POST请求,记录一下学习历程,在GET请求的基础上。

在接口NewsApi中增加post请求的方法:

 @POST("toutiao/index?key=a2924a746f129e1f4b37d81dc5fea156") Call<NewsBean> getDataByPost(@Body ApiBean aPiBean);

ApiBean是什么东东?其实就是Body的JavaBean,因为我这里只有一个type参数,所以比较简单:

public class ApiBean {public String type;}

其余的和GET请求一致了:

  //通过Retrofit创建接口对象    NewsApi newsApi = retrofit.create(NewsApi.class);    ApiBean apiBean = new ApiBean();    apiBean.type="top";    mCall = newsApi.getDataByPost(apiBean);    mCall.enqueue(new Callback<NewsBean>() {        @Override        public void onResponse(Call<NewsBean> call, Response<NewsBean> response) {            LogUtils.LogUtil("size="+response.body().result.data.size());        }        @Override        public void onFailure(Call<NewsBean> call, Throwable t) {        }    });}

如果你想取消请求,可以的:

mCall.cancel();

Retrofit也提供了同步请求的方法,不过Android是不允许在mainThread进行耗时操作的了:

mCall.execute();
0 0