【问题标题】:HTTP POST in node-red js节点红色 js 中的 HTTP POST
【发布时间】:2014-08-26 07:52:48
【问题描述】:

我想知道如何将带有 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 节点中出现意外的令牌

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

【问题讨论】:

    标签: javascript json node.js node-red


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多