Konvertieren des Zeichenfolientyps von einer API-Antwort in eine Image-Datei - \ u0000 \ u0010JFIF \ u0000 \ u0001 \ u0001 \ u0000 \ u0000 \ u002

9

Ich habe Ссылка $ value API verwendet, um das Profilbild von zu erhalten der Outlook-Benutzer. Ich bekomme ein Bild über das Ausführen der oben genannten API im Rest-Client. Der Inhaltstyp der API ist "image / jpg"

In Node.js lautet die Antwort der API jedoch wie folgt:

%Vor%

Ich habe 'fs' verwendet, um eine Bilddatei zu erstellen. Der Code ist wie folgt:

%Vor%

Die Datei wurde erfolgreich geschrieben, aber die erzeugte .jpg image-Datei ist beschädigt. Ich kann das Bild nicht öffnen. Die Ausgabe der Bilddatei ist wie folgt:

%Vor%     
Dinesh Kumar 14.12.2017, 05:16
quelle

2 Antworten

3

Sie können dies tun, indem Sie die Antwort so streamen,

%Vor%

Ссылка

Ссылка

    
vibhor1997a 14.12.2017, 06:41
quelle
0

Der Grund dafür ist, dass request standardmäßig .toString() für die Antwortdaten aufruft. Im Fall von binären Daten, wie einem RAW JPEG, ist dies nicht das, was Sie wollen.

Es wird auch in der Dokumentation request erklärt (wenn auch vage):

  

( Hinweis : Wenn Sie Binärdaten erwarten, sollten Sie encoding: null setzen.)

Was bedeutet, dass Sie das auch verwenden können:

%Vor%

Streaming ist jedoch wahrscheinlich immer noch die bessere Lösung, da nicht die gesamte Antwort zuerst in den Speicher gelesen werden muss.

    
robertklep 26.12.2017 08:24
quelle