将api httpresponse bytearray转换为文件

ohfgkhjo  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(294)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

三年前关门了。
改进这个问题
我正在使用java中的c#webapi。api方法返回一个文件字节数组。我可以在java中读取字节数组响应,但当我尝试将其转换为文件时,它会在文件中写入完整的字符串。
下面是我使用的代码:

HttpResponse response=...
byte[] content = EntityUtils.toByteArray(response.getEntity());
File fileToWriteTo = new File("abc.docx");
FileUtils.writeByteArrayToFile(fileToWriteTo, content);

下面是生成文件的截图:docx文件截图
下面是fiddler响应截图:fiddler响应截图

pftdvrlh

pftdvrlh1#

内容类型:application/json
c#api发送的内容/类型有点可疑。
如果这个端点应该返回一个字节数组,那么您应该收到如下信息:
内容类型:应用程序/八位字节流
因此,这里发生的事情是,字节数组作为json字符串发送(注意到字节周围的引号?),然后由java程序作为文本文件写入。
最好的办法是修复c#端点以发送正确的内容类型。
但是如果您没有访问权限,可以尝试解析json字符串,解码字节数组中的字节字符串,然后将其写入文件。

相关问题