我在尝试执行简单的GET请求时,NodeJS遇到了一个奇怪的错误。 这对我有用:
http.get('http://54.241.239.69:8332/', function(res){
var str = '';
res.on('data', function (chunk) {
str += chunk;
});
res.on('end', function () {
//console.log(str);
clientRes.send(str);
});
});
但是,当尝试像这样使用request
做同样的事情时:
const options = {
hostname: 'http://54.241.239.69',
port: 8332,
path: '/',
method: 'GET'
}
const req = https.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`)
res.on('data', (d) => {
process.stdout.write(d)
})
})
req.on('error', (error) => {
console.error(error)
})
req.end()
它给我一个Error: getaddrinfo ENOTFOUND http://54.241.239.69 http://54.241.239.69:8332
错误。
为什么get()
起作用但request()
不起作用?
谢谢。
答案 0 :(得分:2)
hostname
不接受协议。因此它将只是54.241.239.69
。
此外,由于链接具有https
协议,因此您可能需要将http
模块更改为http
。
const options = {
hostname: '54.241.239.69',
port: 8332,
path: '/',
method: 'GET'
}
注意::ENOTFOUND是DNS错误,表示它无法解析主机名。