Best practice is to upload images one by one. Instead if your request is FAILED it will time/ data consum because it have number of images.
But you can achieve this, please follow the below code:
Retrofit Version: 'com.squareup.retrofit2:retrofit:2.1.0'
AddMediaMessageRequestEvent
Object class :
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)
method:
private String toRequestParams(File thumbFile) {
// "thumb" is the API key
return "thumb\"; filename=\"" + thumbFile.getName() + ".jpg\"";
}
Retrofit call:
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);