2017-09-05 106 views
0

我正在使用JAVA的C#webapi。 API方法返回一个文件字节数组。我可以读取java中的字节数组响应,但是当我尝试将其转换为文件时,它会将完整的字符串写入文件中。将api httpresponse bytearray转换为文件

下面是我使用的代码:

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

下面是文件的生成的屏幕截图: DOCX file screenshot

下面是提琴手响应截图: Fiddler response screenshot

回答

0

内容 - 类型:application/json

您的C#API发送的此内容/类型有点可疑。

如果这个终点应该返回一个字节数组,你应该得到这样的:

内容类型:应用程序/八位字节流

所以这里发生了什么是你的字节数组是作为JSON字符串发送的(注意到字节周围的引号?),然后由Java程序将其写入文本文件。

要做的最好的事情是修复C#端点以发送正确的内容类型。

但是,如果您无法访问它,则可以尝试解析JSON字符串,解码字节数组中的字节字符串,然后将其写入文件。

+0

感谢您的回复。你的建议对我有用。 –