方法一
@Multipart
@POST("/imOpenApi/uploadGroupImg")
Observable<BaseInfo<String>> uploadGroupImg( @Part MultipartBody.Part groupId, @Part MultipartBody.Part body);
val id= MultipartBody.Part.createFormData("groupId", groupId)
requestData(observable().uploadGroupImg(id, RequestBodyUtil.getPartBody("file", url))
/**
* retrofit @part
* 图片或文件
* @param param 与服务器匹配的请求参数名
* @param path 文件路径
*/
public static MultipartBody.Part getPartBody(String param, String path) {
if (TextUtils.isEmpty(path)) {
return MultipartBody.Part.createFormData(param, "");
}
File file = new File(path);
RequestBody photoBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
String encode;
try {
encode = URLEncoder.encode(file.getName(), "UTF-8");
} catch (UnsupportedEncodingException e) {
encode = file.getName();
}
return MultipartBody.Part.createFormData(param, encode, photoBody);
}
方法2
Observable<BaseInfo<String>> uploadGroupImg(@PartMap Map<String,String> map, @Part MultipartBody.Part body);
val map= HashMap<String, String>()
map["groupId"] = groupId
requestData(observable().uploadGroupImg(map, RequestBodyUtil.getPartBody("file", url)),
@Part("groupId") RequestBody
public static RequestBody getTextBody(String body) {
return RequestBody.create(MediaType.parse("text/plain"), body);
}










网友评论