当前位置: 首页 > 知识库问答 >
问题:

从NodeJS到外部API的http.get()

卫弘义
2023-03-14

我正在尝试使用NodeJS(使用Express)向外部API发出httpget请求,但没有得到任何数据。我的代码是nextone:

 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);
});

});

但我得到的回应是:状态码:302,身体是空的。

外部API工作正常(我尝试过使用http GET请求并返回数据)

我正在执行的请求需要授权令牌

我做错了什么?或者我能做些什么来找回数据?

干杯

共有1个答案

丁业
2023-03-14

您只是将数据抛向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}!`));
 类似资料:
  • 寻求帮助,以解决我的问题,任何建议感谢! 因此,我使用XHR请求将csv文件作为formdata上传到节点环境: 接下来,我需要添加授权头并将相同的数据发送到外部API。 我所尝试的: 使用请求模块和'。管道() 使用勤杂工 和axios与form-data 基本上所有这些帖子:1, 2, 3, 4, 5, 6, 7 但是文件发送不正确,服务器以400响应。 限制由于此节点环境基于云,我无法访问任

  • 问题内容: 我有一个Laravel 5.3安装程序,它作为纯API应用程序运行,需要从几个不同的应用程序连接。 一切工作正常(毕竟,我们谈论的是Laravel:P),除了我搞不清楚一件事: 我有一个MQTT服务器,它正在侦听来自多个设备的消息(无关紧要)。这些消息包含有关需要在后端调用的作业类和方法的信息。 我不能直接调用API,设备根本不支持此功能(虽然可以,但是比使用MQTT传输数据要付出更多

  • 问题内容: 我正在开发API,一切正常。 对于特定问题,我正在使用本地CLI依赖项,该依赖项会处理一些 输入 文件并 输出 其他内容,以防从API返回。 我想知道(也许让我敞开心I)可以在生产中为该API提供什么样的服务。 这个想法是要有一个环境(例如在我的本地环境中)可以在同一台机器上安装不一定要写入的外部依赖项。 我的特定依赖项是fontforge和其他小东西。 提前致谢。 问题答案: 如果您

  • 我想连接到树莓Pi节点。我从网络外部设置的js服务器。 我的路由器声称端口是开放的。我尝试在127.0.0.0、0.0.0.0和我的公共IP地址运行服务器。 我曾尝试使用ngrok打开端口8080,服务器在其中托管一个简单的网页,但尝试访问myIP:8080不起作用。 有人能帮我吗?

  • 我正在尝试从此API获取数据: 我设法使用wp_remote_get()来提出请求,但我一直没有得到任何结果,除了一个错误: 我只是指出,我已经使用了作曲家来设置作曲家。我的XAMPP适当文件夹中的json文件,其中包含请求: 在我的代码中,我包括API密钥的参数,如下所示,但由于某些原因,该参数不起作用:

  • 问题内容: 在我的 主服务器上 ,我从可通过api访问的外部/单独的 redis服务器中 获取数据 。但是,api是不安全的。而且由于我希望将 Redis服务器 分开,因此该技术不适合我的情况。 在我来说,我想有2台独立的服务器, 一个 和 乙 。 A 应该在不使用api或url调用的情况下从 B 加载数据…而是应使用 port (例如)。这样,服务器 乙 只能从访问的 一个 。 我希望这种方法适