我整天都在寻找这个。我想要的是使用Node JS获取给定网站的 http响应标题以及状态代码。这么简单。
对于这个简单的问题,我检查的所有答案和文档似乎都太过可怕,太复杂了,而且我似乎无法使它们正常工作。
例如,一个答案为我提供了此代码
const https = require('https')
const options = {
hostname: 'google.com'
}
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()
尝试使用google后,显示给我的响应代码是301,这显然是错误的
对于该示例,我认为正确的代码应为“ 200”。另外,这个不显示所有标题。
答案 0 :(得分:1)
您可以看到,如果我使用google.com
I get a 301, redirect
这是因为google.com
将我重定向到www.google.com
。但是,如果我卷曲www.google.com
,它会给我这个响应,
是网页。至于标头,应根据显示以下示例的https module documentation将其放在res.headers
中
const https = require('https');
https.get('https://encrypted.google.com/', (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (e) => {
console.error(e);
});
如您所见,它们使用console.log('headers:', res.headers);
打印标题。您可以使用res.headers['INSERT-HEADER-NAME-HERE']
访问给定的标头,其中INSERT-HEADER-NAME-HERE被the header that you want to use取代