android retrofit 請求參數格式RequestBody的方法 原

以前都是使用

Observable<ResponseBody> login(@HeaderMap Map<String, String> headers, @QueryMap Map<String, String> map);

@QueryMap方式,將參數放入map中傳輸的

現在改用RequestBody的方式

Observable<ResponseBody> login(@HeaderMap Map<String, String> headers, @Body RequestBody requestBody);

那麼如何轉換呢,很簡單,只需要把以前的map封裝一下即可得到RequestBody作爲參數了

import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.Request;
import okhttp3.RequestBody;

 

/**
 * 將map數據轉換爲 普通的 json RequestBody
 * @param map 以前的請求參數
 * @return
 */
public static RequestBody convertMapToBody(Map<?,?> map) {
    return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new JSONObject(map).toString());
}

/**
 * 將map數據轉換爲圖片,文件類型的  RequestBody
 * @param map 以前的請求參數
 * @return 待測試
 */
public static RequestBody convertMapToMediaBody(Map<?,?> map) {
    return RequestBody.create(MediaType.parse("multipart/form-data; charset=utf-8"), new JSONObject(map).toString());
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章