Как преобразовать MultipartBody.Part в файл - PullRequest
0 голосов
/ 30 января 2019

Пожалуйста, помогите мне, как преобразовать переменную Multipart.Part в файл в Android.

Я использую API REST с модификацией для загрузки файла на сервер.Вот как я загрузил файл на сервер, используя модификацию.

RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile);

И в downloadFileApi сервер возвращает файл в виде данных в формате JSON.Например,

{
    "fileName": "file.pdf",
    "file":"form_data_here"
}

Внутри файла значением является строка, представляющая собой form_data, или я не знаю, какой именно это формат.Он содержит много случайных букв и цифр.

Я понял, что сервер должен отправлять файл, а не в виде строки в формате JSON.Если бы они разработали сервер для отправки реального файла, я бы использовал ResponseBody, чтобы получить файл.Но теперь я должен использовать класс модели POJO.

Я также пытался преобразовать строку в ResponseBody следующим образом

ResponseBody.create(MediaType.parse("application/pdf"), "form_data_here");

Пробовал тоже,

ResponseBody.create(MediaType.parse("multipart/form-data"), "form_data_here");

Изатем преобразовать это тело в byteStream.Но файл результатов становится поврежденным.Фактический файл должен быть PDF-файлом, но файл результатов, похоже, поврежден.Если я изменю расширение файла на .txt, тогда я смогу увидеть строку form_data в этом текстовом файле, чего не должно быть.

Итак, как это решить?Или API должен вернуть файл вместо JSON-ответа?

Насколько я понял, они неправильно разработали API.

...