Ошибка ENOTFOUND при использовании http.request (), но работает http.get () - PullRequest
0 голосов
/ 08 июля 2019

У меня странная ошибка с NodeJS, когда я пытаюсь выполнить простой запрос GET. Это работает для меня:

   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()? Спасибо.

1 Ответ

2 голосов
/ 08 июля 2019

hostname не принимает протокол.Так что это будет просто 54.241.239.69.

Кроме того, вам может потребоваться изменить модуль https на http, так как ваша ссылка имеет протокол http.

const options = {
    hostname: '54.241.239.69',
    port: 8332,
    path: '/',
    method: 'GET'
}

Примечание: ENOTFOUND isошибка DNS, это означает, что она не может разрешить имя хоста.

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