Ich versuche, ein einfaches Stück Code mit NodeJS zu schreiben, um die JSON von der Stack Exchange API zurück zu bekommen.NodeJS zurückkehrenden Müll JSON
Dies ist die API I targetting- bin https://api.stackexchange.com/2.2/users?order=desc&sort=reputation&inname=donal%20rafferty&site=stackoverflow
Und hier ist mein Code:
var https = require('https'); //Use NodeJS https module
function getUserDataByName(userName, callback){
var stackOverflowUserURL = 'https://api.stackexchange.com/2.2/users?order=desc&sort=reputation&inname='+encodeURIComponent(userName)+'&site=stackoverflow';
https.get(stackOverflowUserURL, function(response){
console.log("headers: ", response.headers);
if (response.statusCode == 200) {
var jsonString = '';
response.on('data', function (chunk) {
jsonString += chunk;
});
response.on('end', function() {
console.log((jsonString));
callback(JSON.stringify(jsonString));
});
}
else{
//error
console.log("Error");
}
});
}
aber wenn ich diese Daten immer laufen wie Text in einem Zustand von Müll wie folgt kommt zurück :
\ "\ u001f \ b \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0004 \ u0000uRn0 \ fB ږ \ u00132 \ u0010R
�m�u\\u0018\\u0004ڢ\\u001d!��Jr=�ȿ�vS\\u0004\\u0005������H����C
7ր Q n \ u0012 \ u0014 {g \\ " ] + zV \ u001f (V % a n | ) QU .O \ u000e \ u0012 Ѹ \ u0005 \ u0003 \ u00130a \ u0006B S Ө C^ bw I \ u000bC b \ u0017e \ u0013 q \\ "D lO` @^\ nq \ u0017 | P? PFz i R \ u000f , [ pu {x \ b ~ k LUV \ u0012 \ u00194 l \ u000e ڕ \ rW \ u001c * \ u001a 9 \ u001e Q + Q > o ; a '\ btI b/ \ u0007 CK \ u0000 j ۯ \ u0003g | \ U0003 \ U0002 \ u0000 \ u0000 \
ich gehe davon aus, etwas falsch mit meiner Codierung/Decodierung gibt es, aber ich kann nicht herausfinden, was diese tun, um zu beheben ?
gzip ist, dass komprimiert, vielleicht? Möglicherweise müssen Sie es mit 'zlib' entpacken. – tadman
@DarrenSweeney" Wenn ich es direkt anrufe, ist es in Ordnung "--- Mit einem Browser? Ein Browser dekodiert automatisch. Die Antwort wird gezippt, schauen Sie sich den Antwort-Header an. –
Ich habe nicht lange mit node.js getan, aber wenn man sich kurz umschaut, kann es sein, dass man die Antwort entzippen muss, die gezippt wird (man schaut sich den Antwortkopf an, der Browser zeigt Klartext, weil er führt diesen Schritt automatisch aus). --- Beispielcode: https://erikberg.com/api/examples/nodejs –