Дооснащение - загрузка изображения - PullRequest
0 голосов
/ 26 февраля 2019

У меня проблемы с загрузкой изображения с помощью дооснащения.

Мой интерфейс сервиса дооснащения:

@Multipart
@Headers({
        "Content-Type: application/json"
})
@POST("upload_photo")
Call<ResponseBody> uploadPhoto(@Part MultipartBody.Part filePart);

Вызов службы:

MultipartBody.Part filePart = MultipartBody.Part.createFormData("photo", fileName, RequestBody.create(MediaType.parse("image/png"), bitmapByteArray));
Call<ResponseBody> call = service.uploadPhoto(filePart);

Проблема в том, чтовеб-служба не находит деталь с ключом / именем photo и возвращает, что отправленное изображение имеет значение NULL.

Это вызов почтальона, который работает

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019
   @Multipart
@POST("upload_image")
Call<UserProfileResponseBean> upload_image(@PartMap Map<String, RequestBody> part);



if (path.isEmpty()) {
            upload_image = servicesInterface.upload_image(map);
        } else {
            File imagepath = new File(path);
            MultipartBody.Part body = MultipartBody.Part.createFormData("image", imagepath.getName(), RequestBody.create(MediaType.parse("image/*"), imagepath));
            upload_image = servicesInterface.upload_image(map, body);
        }
0 голосов
/ 26 февраля 2019

Пожалуйста, попробуйте этот код

@Multipart
@POST("upload_photo")
Observable<ResponseBody> uploadPhoto(@Part("photo") RequestBody photo);
//////////////////////////////////////////////////////////////////////////////
//pass it like this
File file = new File("/storage/emulated/0/Download/Corrections 6.jpg");
RequestBody requestFile =
        RequestBody.create(MediaType.parse("multipart/form-data"), file);

// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part body =
        MultipartBody.Part.createFormData("image", file.getName(), requestFile);

service.uploadPhoto(body);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...