Я пытаюсь отправить файл на сервер с помощью Retrofit2. Я делаю все согласно документации, но всегда получаю 400 ошибок сервера.
Я пытаюсь сделать вот так:
RequestBody body =
RequestBody.create(MediaType.parse("image/png"), photo);
//..........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") RequestBody file);
... и вот так:
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
//...........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") MultipartBody.Part files);
не имеет значения. Результат всегда один и тот же "Многостраничный запрос: Обязательный параметр" Файл "параметра MultipartFile" нет "- ответ сервера.
Я бы подумал, что Spring на сервере работает не очень хорошо, но я делаю эквивалентный код на Swift (iOS), и он работает! Здесь сервер видит эту часть файла.
Alamofire.upload(method, endpoint, headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
}
Теперь я хочу, чтобы он работал на Android с помощью "Дооснащения". Но я даже смотрю в журналах запросов Retrofit, и действительно, я не вижу в файлах никаких "файлов".
Что не так с этим?