最佳做法是一张一张上传图片。相反,如果您的请求失败,它将消耗时间/数据,因为它有许多图像。
但你可以做到这一点,请按照以下代码:
Retrofit Version: 'com.squareup.retrofit2:retrofit:2.1.0'
AddMediaMessageRequestEvent对象类:
public class AddMediaMessageRequestEvent implements Serializable {
public String token;
public Map<String, RequestBody[]> bodyMap;
}
MainActivity.java:
AddMediaMessageRequestEvent request = new AddMediaMessageRequestEvent();
Map<String, RequestBody> map = new HashMap<>();
//"thumbFile" is your image file
RequestBody[] thumbBody = new RequestBody[3];
thumbBody[0] = RequestBody.create(MediaType.parse("image/jpg"), thumbFile);
thumbBody[1] = RequestBody.create(MediaType.parse("image/jpg"), thumbFile);
map.put(toRequestParams(thumbFile), thumbBody);
request.bodyMap = map
toRequestParams(//file)方法:
private String toRequestParams(File thumbFile) {
// "thumb" is the API key
return "thumb\"; filename=\"" + thumbFile.getName() + ".jpg\"";
}
改装电话:
Call<ResponseMessage> call = mApi.addMediaMessage(request.token, request.bodyMap);
call.enqueue(//new Callback())
API:
@Multipart
@POST("/api/{id}/add-media-message")
Call<ResponseMessage> addMediaMessage(
@Header(AppConstants.HEADER_PARA_TOKEN) String token,
@PartMap Map<String, RequestBody> params);