4

我想知道如何将带有 JSON 数据的 http POST 请求发送到带有 API 密钥的服务器中。我在http://nodered.org/docs/中搜索过,但他们没有写清楚任何东西。文档非常混乱,甚至不好理解。但是,我尝试发布一个字符串化的 JSON 数据:

{"version":"1.0.1","sensors":[{"sensor":"accel","output":[{"name":"accelert","type":"dcmotion"}]}]}

我已经将函数节点中的 API 编写为(这里的 API 是任意的,不是原创的)

var msg = {"version":"1.0.1","sensors":[{"sensor":"accel","output":[{"name":"accelert","type":"dcmotion"}]}]}

msg.headers: {
                    'x-api-key': 'ucasdfeacceacxfAIH2L4=',
                    'content-type': 'application/json"
                }

我从这里得到了这个例子:https ://groups.google.com/forum/#!msg/node-red/nl9Be0dN55g/S_VYMTjOanEJ

我将输入节点添加为 HTTP POST,然后给出 url 并将其与添加了一个调试节点的函数连接。现在我部署了它。我收到错误:API 节点中出现意外的令牌

现在我不知道该怎么做。我不知道如何做到这一点。请帮帮我。节点红色站点中没有可用的教程。

4

2 回答 2

2

而不是var msg = {... 你应该使用msg.payload = {...

因为msg是在 node-red 节点之间传递的标准 JSON 对象消息,所以不应该使用 var 声明,并且它的payload属性包含消息的主体,所以当为HTTP 请求节点提供msg时,payload属性被发送作为请求的主体(请参阅HTTP 请求节点的信息选项卡)。

于 2014-12-18T06:18:45.327 回答
1

从您关于此主题的后续问题中,我看到您已经解决了您在这里遇到的问题。

重复我在那里给出的答案,您要发布的有效负载应该位于您从函数返回的对象上名为“有效负载”的属性中。http 请求节点的文档描述了所有这些。

您会发现当前在堆栈溢出内的节点红色上没有很多活动。希望这会随着时间的推移而改变,但现在您会发现邮件列表的响应速度更快。

此外,如果您有具体的反馈,我们欢迎您将其添加到邮件列表中。

于 2014-08-26T20:36:31.760 回答