1. 程式人生 > >Retrofit 2.0開發中快速構建(@Body RequestBody requestBody)

Retrofit 2.0開發中快速構建(@Body RequestBody requestBody)

Retrofit 網路請求框架現在比較流行 ,在開始網路請求時 經常需要構造(@Body RequestBody requestBody)

相信很多開發小夥伴會利用生成Bean 的方式去構造RequestBoday 

但是偶爾會遇到一種情況,那就是一個RequestBoday 裡面的資料不多,但是巢狀的很深,如果這個時候去建立大量的物件,最後封裝成一個RequestBoday 這樣程式碼太過冗餘

所以可以利用一種新的方式:

JSONObject root = new JSONObject();

JSONObject requestData = new JSONObject();

final JSONObject requestAttributes = new JSONObject();

try {

requestAttributes.put("reason", reason);

requestData.put("type", "deleteAccount");

requestData.put("attributes", requestAttributes);

root.put("data", requestData);

} catch (JSONException e) {

e.printStackTrace();

}

LogUtils.d("DeleteAccountEndActivity reason =" + reason);

LogUtils.d("DeleteAccountEndActivity root =" + root);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), root.toString());

LogUtils.d("DeleteAccountEndActivity requestBody =" + requestBody);

利用該requestBody 就可以了

但是有一點需要注意:JSONObject 中的Value 不能為空

GitHub:  https://github.com/HuaDanJson