Я могу отправить одну MultipartBody, которая содержит 3 изображения и некоторый атрибут, как показано ниже
Интерфейс:
@POST("test_request")
Call<ResponseBody> test(@Body RequestBody file);
код:
private MultipartBody getMultiFile(CoursesAdded coursesAdded) {
ArrayList<String> filePaths = new ArrayList<>();
filePaths.add(coursesAdded.getImag1());
filePaths.add(coursesAdded.getImag2());
filePaths.add(coursesAdded.getImag3());
MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM);
builder.addFormDataPart("skill", coursesAdded.getCourse_name());
builder.addFormDataPart("certificate_from", coursesAdded.getCourse_location());
builder.addFormDataPart("certificate_date", "null");
for (int i = 0; i < filePaths.size(); i++) {
File file = new File(filePaths.get(i));
builder.addFormDataPart("file[]", file.getName(), RequestBody.create(MediaType.parse("multipart/form-data"), file));
}
MultipartBody requestBody = builder.build();
return requestBody;
}
Но теперь мне нужнодля отправки массива MultipartBody.
get Функция Array:
private MultipartBody[] getArray() {
MultipartBody[] multipartBodies = new MultipartBody[coursesAddedArrayList.size()];
for (int i = 0; i < coursesAddedArrayList.size(); i++) {
CoursesAdded coursesAdded = new CoursesAdded(
coursesAddedArrayList.get(i).getCourse_name(),
coursesAddedArrayList.get(i).getCourse_location(),
coursesAddedArrayList.get(i).getImag1(),
coursesAddedArrayList.get(i).getImag2(),
coursesAddedArrayList.get(i).getImag3()
);
multipartBodies[i] = getMultiFile(coursesAdded);
}
return multipartBodies;
}
Интерфейс:
@POST("test_request")
Call<ResponseBody> addCourses(
@Body MultipartBody[] requestsBody
);
при отображении запроса в ответ, чтобы увидеть, что было отправлено, я получилследующий
[size = 1838 text = {"test": [{"border": {"data": [55,48,99,55,97,56,52,53,45,101, 97,…]