Retrofit2.0學習之Post請求

前不久剛剛學習了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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章