Я использую Retrofit 2.0 для загрузки изображений на сервер в Android. Ниже приведен код интерфейса.
@Headers("Content-Type: multipart/form-data; boundary=MyMediaFormBoundary")
@Multipart
@POST("api/media/upload/v1")
Call<MyResponse> uploadMedia(@Header("authToken") String authToken,
@Part("media_file\"; filename=\"media_file.jpg\" ") RequestBody filePart,
@Part("media_format") RequestBody format,
@Part("media_library_id") RequestBody noteId,
@Part("media_title") RequestBody title);
Вот мой код для создания параметров тела запроса
File file = new File(mediaFileUri.getPath());
RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), file);
RequestBody formatBody = RequestBody.create(MediaType.parse("text/plain"), format);
RequestBody titleBody = RequestBody.create(MediaType.parse("text/plain"), title);
RequestBody idBody = RequestBody.create(MediaType.parse("text/plain"), id + "");
Когда я вызываю мой интерфейсный метод с указанными выше параметрами, я получаю сообщение об ошибке «пар неожиданно завершился», и мне интересно, что именно я делаю неправильно.
Я также пытался использовать объект MultipartBody.Part для модификации в интерфейсе выше, но результат все тот же.
Ниже приведены ссылки, которые я использовал для справки:
первая ссылка
вторая ссылка
Примечание: я сомневаюсь, что это связано с неправильным запросом, но мне не очень помогает бэкэнд-команда, и она работает на iOS. Единственная информация, которая у меня есть, на стороне сервера - это выборка медиа-файла для ключа 'media_file', но мне интересно, где его использовать.