gpt4 book ai didi

javascript - Node.js + 向第三方服务发送 API 请求

转载 作者:行者123 更新时间:2023-12-02 14:11:31 26 4
gpt4 key购买 nike

我有一个 Node 控制台应用程序。在我的应用程序中,我尝试将一些数据发送到第三方网络服务。我可以通过 POSTMAN 通过第三方 Web 服务成功添加数据。在我的 postman 中,我有一个这样的请求设置:

标题

api-key
{my key}

Content-Type
application/json

正文

{
"value": [
{
"@operation": "send",
"id":"1",
"name":"Hello",
"position": { "type": "Point", "coordinates": [90.000000, 0.000000] },
"tags":["january", "friends"]
}
]
}

我现在正在尝试通过 Node.js 复制发送此数据。为了尝试做到这一点,我编写了以下内容:

var ops = {
host: 'example.com',
path: '/api/upload?version=2',
method: 'POST',
headers: {
'api-key':'[my key]',
'Content-Type': 'application/json'
}
};

var r = https.request(ops, (res) => {
res.on('data', (d) => {
console.log(res.statusCode);
console.log(res.statusMessage);
});
});

var data = {
"value": [
req.body.record // req is passed in via express
]
};
console.log(data);

r.write(JSON.stringify(data));
r.end();

当执行 console.log(data); 行时,我在控制台窗口中看到以下内容:

{ value:
[ { '@operation': 'send',
id: '1',
name: 'Hello',
position: [Object],
tags:[Object]
} ] }

我不确定这是打印问题还是实际问题。不管怎样,我真正的问题是,当我发送请求时,我看到控制台窗口中还打印了以下内容:

400
Bad Request

该数据看起来正确。我不明白为什么当我尝试从 Node 发送时收到 400。然而,它在 Postman 中工作得很好。和引号有关系吗?我认为 JSON.stringify 处理了这个问题。

我做错了什么?

最佳答案

老实说,除非您有充分的理由不这样做,否则只需使用类似 request 的内容即可。这比尝试自己构建更容易/更干净。

如果不知道您正在谈论的 API 期望什么,我无法更具体地回答。

此外,在您的 res.on('data') 中,只需 console.log(req); 并查看其中还隐藏了什么;它可能会帮助您使用现有代码解决此问题。

关于javascript - Node.js + 向第三方服务发送 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39520768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com