Node.js Ошибка подключения Github API ECONNREFUSED при получении пользовательских репозиториев - PullRequest
1 голос
/ 22 апреля 2020

Я локально пытаюсь получить пользовательских репо через https получить запрос с https.get

const https = require("https")

https.get({
    url: "https://api.github.com/users/ryanve/repos"
  }, response => {
    let data = ""
    response
      .on("data", chunk => data += chunk)
      .on("end", () => {
        console.log(data)
      })
  })
  .on("error", e => {
    console.error(e.message)
  })

I получить ECONNREFUSED ошибку

connect ECONNREFUSED 127.0.0.1:443

Что вызывает эту ошибку?

Аутентификация?

Как исправить?

node --version is v12.16.2

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вы не можете включить url в объект, который вы передаете get. Поскольку это все, что вы передали, и оно было проигнорировано, он использовал URL по умолчанию localhost. (ИМО, имея URL-адрес по умолчанию, а не просто выдававший ошибку, говоря, что URL-адрес отсутствует, - это бородавка в NodeJS, но это ни здесь, ни там.) Замените это:

https.get({
    url: "https://api.github.com/users/ryanve/repos"
  }

этим:

https.get("https://api.github.com/users/ryanve/repos"
0 голосов
/ 22 апреля 2020

Шаги, чтобы заставить его работать

  1. Исправлен синтаксис url. Спасибо!
  2. Получил Пожалуйста, убедитесь, что ваш запрос имеет пользователя -Агент заголовка ошибка
  3. Проверено, что curl работал на той же конечной точке
  4. Научился отправлять User-Agent в options.headers

Работает curl

curl -iH User-Agent:ryanve https://api.github.com/users/ryanve/repos

Рабочая https.get

https.get("https://api.github.com/users/ryanve/repos", {
    headers: {
      "User-Agent": "ryanve"
    }
  }, response => {
    let data = ""
    response
      .on("data", chunk => data += chunk)
      .on("end", () => {
        console.log(JSON.parse(data, null, 2))
      })
  })
  .on("error", e => {
    console.error(e.message)
  })
...