2017-09-05 2 views
0

Ich bin ein C# Webapi in JAVA. API-Methode gibt ein Array von Dateibytes zurück. Ich kann Byte-Array-Antwort in Java lesen, aber wenn ich versuche, das gleiche in Datei zu konvertieren, schreibt es die vollständige Zeichenfolge in Datei.Konvertieren api httpresponse Bytearray in Datei

Unten ist der Code ich verwende:

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

Unten ist der Screenshot-Datei generiert: DOCX file screenshot

Unten ist die Fiedler Antwort Screenshot: Fiddler response screenshot

Antwort

0

Content- Typ: application/json

Dieser Inhalt/Typ, der von Ihrer C# API gesendet wird, ist etwas verdächtig.

Content-Type:

Wenn dieser Endpunkt soll ein Byte-Array zurück, sollten Sie so etwas wie erhalten application/octet-stream

Also hier, was geschieht, ist Ihr Byte-Array wird als JSON-String gesendet (notiert die Anführungszeichen, die Ihre Bytes umgeben?), die dann von Ihrem Java-Programm als Textdatei geschrieben werden.

Am besten beheben Sie den C# -Endpunkt, um den richtigen Inhaltstyp zu senden.

Wenn Sie jedoch keinen Zugriff darauf haben, können Sie versuchen, die JSON-Zeichenfolge zu analysieren, die Bytezeichenfolge in einem Bytearray zu decodieren und dann in eine Datei zu schreiben.

+0

Vielen Dank für Ihre Antwort. Dein Vorschlag funktioniert für mich. –

Verwandte Themen