我有一段代碼應該做一個http獲取請求。程序成功退出沒有錯誤,但我沒有看到任何迴應,它甚至沒有進入回調函數!起初我以爲這是因爲http是異步的,並且最後放了一個大的循環,但是這也不起作用。有誰知道這個問題?只有第一個控制檯日誌sendHttpRequest和444被打印。我也嘗試了http.get,但它也沒有工作。Nodejs的http請求不起作用
function sendHttpRequest (url, callBack) {
console.log("sendHttpRequest");
//constrct options
var options = {
host: 'www.google.com',
path: '/index.html',
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
http.get("http://www.google.com/index.html", function(res) {
console.log("Got response: " + res.statusCode);
});
var req = http.request(options, function(res) {
console.log("333");
var output = '';
console.log(options.host + ':' + res.statusCode);
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log("DATATATAT!")
output += chunk;
});
res.on('end', function() {
console.log('222');
var obj = JSON.parse(output);
callBack(res.statusCode, obj);
});
});
req.on('error', function (err) {
console.log('error: ' + err.message);
});
req.end();
console.log("444");
}
}
有人說谷歌沒有「/指數.html「,我刪除了它,但仍然無效。它只是沒有進入回調。沒有反應。 – user3084182
你打這個電話過得怎麼樣?這有幾個問題,但除此之外,我可以看到所有的'console.log',並且回調函數也被調用。你也返回HTML,'JSON.parse'永遠不會工作。 – matth
@ making3嗨,我把它封裝成一個模塊,並從一個咕task任務中調用它,但不知何故,我只能看到第一個控制檯日誌和最後一個,它是444.我必須在grunt或這個模塊中調用異步等待迴應?謝謝!對於json部分,原本我打算解析一個json,這樣不會有問題。 – user3084182