Próbuję napisać prosty fragment kodu za pomocą NodeJS, aby odzyskać JSON z interfejsu API wymiany stosu.NodeJS zwracające śmieci JSON
Jest to API Jestem targetting- https://api.stackexchange.com/2.2/users?order=desc&sort=reputation&inname=donal%20rafferty&site=stackoverflow
I tu jest mój kod:
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");
}
});
}
Jednak gdy uruchamiam to dane zawsze wraca w stanie śmieci jak tekst jak poniżej :
\ "\ 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 \ u0014 \ 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 | ի ? 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 \
jestem przy założeniu, że jest coś nie tak z moim kodowania/dekodowania, ale nie mogę dowiedzieć się, co zrobić, aby rozwiązać ten problem ?
Czy to skompresowany, może? Może być konieczne zdekompresowanie go za pomocą 'zlib' – tadman
@DarrenSweeney" Kiedy nazywam to bezpośrednim, jest w porządku "--- Z przeglądarką? Przeglądarka automatycznie odszyfrowuje. Odpowiedź jest spakowana gzip, spójrz na nagłówek odpowiedzi. –
Od dawna nie robiłem nic z node.js, ale rozglądając się w kółko, może się okazać, że musisz odpakować odpowiedź, która jest gzipowana (spójrz na nagłówek odpowiedzi, przeglądarka pokazuje zwykły tekst, ponieważ wykonuje ten krok automatycznie). --- Przykładowy kod: https://erikberg.com/api/examples/nodejs –