Я пытаюсь отправить изображение и массив, используя multipart.Я успешно загрузил изображение, используя multipart, но не смог отправить массив с ним.
интерфейс
@Multipart
@retrofit2.http.POST("/" + POST_USER_STORIES)
Observable<JsonObject> uploadUserStory(@Part MultipartBody.Part storyData,
@Nullable @Part("story[resource_type]") RequestBody resourceType,
@Nullable @Part("story[mentionees]") RequestBody mentioneesType);
Я отправляю изображение, тип ресурса и массив
RequestBody requestFile;
requestFile = RequestBody.create(MediaType.parse("image/jpeg"), ImageUtil.getByteArrayFromUri(getApplicationContext(), uri));
MultipartBody.Part photoData = MultipartBody.Part.createFormData("story[resource]", fileName, requestFile);
RequestBody photoType = RequestBody.create(MediaType.parse("text/plain"), "image");
RequestBody mentioneesyType = RequestBody.create(MediaType.parse("text/plain"), new Gson().toJson(list));
ServerTask.getInstance().getServices()
.uploadUserStory(photoData, photoType, mentioneesyType)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(story -> {
DialogUtil.dismissAllDialog();
onUploadStorySuccess();
}, err -> {
Log.d(TAG, "uploadUserStory: " + err.toString());
DialogUtil.dismissAllDialog();
});
, а массив пытается отправить
ArrayList<Mentionees> list = new ArrayList<>();
Mentionees mentioneesUploadModel = new Mentionees();
mentioneesUploadModel.setColorCode("#ff00ff");
mentioneesUploadModel.setFont("regular");
mentioneesUploadModel.setPosX((int) getWidthInPercentage(f.getX()));
mentioneesUploadModel.setPosY((int) getHeightInPercentage(f.getY()));
mentioneesUploadModel.setMentionableId(result.getId());
mentioneesUploadModel.setMentionableType(result.getSearchableType());
mentioneesUploadModel.setName(result.getContent());
mentioneesUploadModel.setPhoto("");
list.add(mentioneesUploadModel);
мой запрос выполняется успешно, но массив не публикуется