请帮助我如何将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。