Как получить HTTP заголовки ответа сайта с Node - PullRequest
0 голосов
/ 10 июля 2019

Я искал весь день для этого. Все, что я хочу, это получить заголовки ответа http плюс код состояния для данного веб-сайта, использующего Node JS. Это просто.

Все ответы и документация, которые я проверял, кажутся слишком ужасно сложными для этой простой проблемы, плюс я, похоже, не могу заставить их работать.

Например, один ответ дал мне этот код

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" для ОК. Плюс, этот не показывает все заголовки.

1 Ответ

1 голос
/ 10 июля 2019

Вы можете видеть, что если я наберу google.com , я получу 301, перенаправление enter image description here

Это потому, что google.com перенаправляет меня на www.google.com. Однако, если я cURL www.google.com, это дает мне ответ,

enter image description here

которая является веб-страницей. Что касается заголовков, они должны быть в res.headers в соответствии с документацией https для модуля , которая показывает следующий пример

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 заменяется на заголовок, который вы хотите использовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...