我在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()
?谢谢。
hostname
不使用协议。因此,它将只是54.241.239.69
。
另外,您可能需要将https
模块更改为http
,因为您的链接具有http
协议。
const options = {
hostname: '54.241.239.69',
port: 8332,
path: '/',
method: 'GET'
}
注意: enotfound是DNS错误,这意味着它无法解析主机名。