HTTP-запрос GET от NodeJS к внешнему API с помощью http.get () - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь выполнить HTTP-запрос GET к внешнему API с помощью NodeJS (используя Express), но я не получаю никаких данных обратно.Мой код следующий:

 import * as http from "http";

const options = {
    host: "EXAMPLE.COM",
    path: "/MY/PATH",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Basic XXXXXXXXXXXXXXXXXX"
    }
};

const req = http.get(options, function(res) {
console.log("statusCode: " + res.statusCode);

res.on("data", function (chunk) {
    console.log("BODY: " + chunk);
});

});

Но я получаю ответ: statusCode: 302 и BODY пусто.

ВнешнийAPI работает правильно (я пытался выполнить http GET-запрос с INSOMNIA и возвращает данные)

Запрос, который я выполняю NEEDS токен авторизации

Что я делаю неправильно?или что я могу сделать, чтобы вернуть данные?

Приветствия

1 Ответ

0 голосов
/ 29 ноября 2018

Вы просто выбрасываете данные в console.log и не отвечаете на запрос.

Вы не упомянули, какой http-сервер вы используете с узлом.Если вы используете express.js (наиболее распространенный), у вас должно быть что-то вроде:

const express = require("express");
const app = express();
const port = 3003;
const http = require("http");
// your webserver url localhost:3003/fetch-something
app.get("/fetch-something", (req, res) => {
  const options = {
    host: "EXAMPLE.COM",
    path: "/MY/PATH",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Basic XXXXXXXXXXXXXXXXXX"
    }
  };

  const httpReq = http.get(options, function(httpRes) {
    //output status code to your console
    console.log("statusCode: " + httpRes.statusCode);

    httpRes.on("data", function(chunk) {
      // still nothing happens on client - this will also just print to server console
      console.log("data", chunk);
      // return some data for requested route
      return res.send(chunk);
    });
  });
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...