2015-05-31 55 views
0

我写了下面的代码的NodeJS从网站的NodeJS:HTTP GET返回代码,而不是

var http = require('http'); 
var url = { 
    host: 'www.sample-website.com', 
    headers: { 
    "Accept": "application/json", 
    'Content-Type': 'application/json' 
    }, 
}; 
http.get(url, function(obj) { 
    var output = ""; 
    for (property in obj) { 
    output += property + obj[property] ; 
} 
console.log(output); 

}) 

但是作为回应,我得到了一些代码(某种事件的检索JSON对象JSON对象.js代码),我不明白(不是HTML代码)。需要帮助搞清楚我要去哪里错了

包括对参考片段::

// emit removeListener for all listeners on all events 
if (arguments.length === 0) { 
    for (key in this._events) { 
    if (key === 'removeListener') continue; 
    this.removeAllListeners(key); 
    } 
    this.removeAllListeners('removeListener'); 
    this._events = {}; 
    return this; 
} 
+0

只是一个友善的建议,请使用要快的框架或连接 – binariedMe

回答

2

根据 API文档,http.get()传递一个ServerResponse对象的回调。您目前正在打印该对象(及其父母的)属性。

如果你想要得到的响应主体,应在其数据事件注册一个监听器:

res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk); 
}); 

和重新组装块。

响应代码可以通过res.statuscode属性访问,而res.headers会给你一个数组中的响应头。


按照要求,这里是一个完整的示例代码:

var http = require('http'); 
var url = 'http://stackoverflow.com'; 
// ... 
http.request(url, function (res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
    console.log('BODY: '); 
    res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
     process.stdout.write(chunk); 
    }); 
}).end(); 
相关问题