Don*_*rty 7 javascript json node.js
我正在尝试使用NodeJS编写一段简单的代码,以便从堆栈交换API中获取JSON.
这是我的代码:
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");
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此数据时,数据总是以类似垃圾的文本状态返回,如下所示:
\\\u001f\b\u0000\u0000\u0000\u0000\u0000\u0004 \u0000uR n 0\f B \u0013 2\u0010 R 7
?m?u\\u0018\\u0004?\\u001d!??Jr=???vS\\u0004\\u0005??????H????Cր Q n \u0012\u0014 {克\\"] + ZV\u001f(V%的|)QU.O\u000e \u0012Ѹ\ u0005\U0003\u00130a \u0006BSӨC^ BWI\u000bCb\u0017e\u0013q \\"DlO` @ ^\NQ\u0017 |?իpFziR\u000f,[PU {X\b〜kLUV\u0012\u00194l \u000e ڕ\rW \u001c *\u001a 9 \u001e Q+ Q > o ; a'\btI b/ \u0007 CK \u0000jۯ\ u0003g |\U0003\U0002\u0000的符\ u0000 \
我假设我的编码/解码有问题,但我无法弄清楚如何解决这个问题?
您需要在响应时对解码进行解码
var https = require('https'); //Use NodeJS https module
var zlib = require("zlib");
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);
console.log(response.statusCode)
if (response.statusCode == 200) {
var gunzip = zlib.createGunzip();
var jsonString = '';
response.pipe(gunzip);
gunzip.on('data', function (chunk) {
jsonString += chunk;
});
gunzip.on('end', function () {
console.log((jsonString));
callback(JSON.stringify(jsonString));
});
gunzip.on('error', function (e) {
console.log(e);
});
}
else{
//error
console.log("Error");
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |