android retrofit 請求引數格式RequestBody的方法
阿新 • • 發佈:2018-12-01
以前都是使用
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()); }