如何将MultipartBody.Part转换为文件

时间:2019-01-30 16:42:09

标签: android file multipartform-data

请帮助我如何将Multipart.Part变量转换为Android中的文件。

我正在使用经过改进的REST api将文件上传到服务器。 这就是我使用改造将文件上传到服务器的方式。

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

然后在downloadFileApi中,服务器以JSON格式将文件作为formdata返回。 例如,

{
    "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。

0 个答案:

没有答案