Я пытаюсь загрузить изображение на сервер с помощью Retrofit, но получаю ошибку HTTP 400. Я знаю, что эта ошибка означает, что вызов не был выполнен правильно, но я не знаю, когда я делаю неправильно. Мне нужно загрузить только одно изображение.
Я попытался добавить заголовки multipart / form-data, а также content-type: image / jpeg, а также без него, но он продолжает выдавать ошибку 400.
Этот код в интерфейсе:
@Multipart
@POST("https://myweb.com/endpoint")
Observable<DefaultResponse> uploadUserImageRx(
@Part MultipartBody.Part image
);
А вот и звонок:
var file = // initialized file here
var filePart = MultipartBody.Part.createFormData("file",file.getName(), RequestBody.create(MediaType.parse("image/jpeg"), file))
unsubscribeUploadPhoto()
uploadPhotoSubscription = MyApiClient.getApi()
.uploadUserImageRx(filePart)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : SubscriberAdapter<DefaultResponse>()
{
//Notify everything went well.
})
Я ожидаю загрузки фотографии, но вместо этого получаю эту ошибку.
Требования к конечной точке:
Авторизация (заголовок) в виде строки