android retrofit 请求参数格式RequestBody的方法

原创
2018/11/30 09:55
阅读数 1.2K

以前都是使用

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());
}

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部