2017-08-15 124 views
0

我想通过使用Node-RED的POST发送一个字节数组。我可以使用this module成功创建缓冲区并将其存储在msg.payload中。但我不知道如何将它作为参数添加到http请求节点中。使用Node-RED发布二进制缓冲区负载

接收应用程序需要附上引号。所以,我用的是有效载荷在以下网址:localhost:port/path?var=\"{{payload}}\",但它给

“错误转换HTTP PARAMS成参数:无效字符‘\’寻找价值开始”

如果在使用它没有引号的请求url:localhost:port/path?var={{payload}}没有任何东西可以通过(我可以在另一端看到)。

由于应用程序在另一端,我使用Protobuf,但我也尝试创建一个缓冲区,如此处所述。但是,没有任何变化。

回答

1

POST在URL中不应该有参数。数据应该全部在体内。

是否需要使msg.payload的某个对象的键与arg名称匹配。

msg.payload = { 
    var = [buffer] 
} 

你可能要玩的内容类型头来默认情况下,我相信节点-RED将发送JSON的身体,你可能想application/x-www-form-urlencoded

您可以通过添加一个设置的标头msg.headers对象

+1

我试图将var包含在有效负载中,就像您描述的那样并设置了一个头对象,但是var的内容仍然不包含在http请求中。 –

+0

显然接收的应用程序做了自己的序列化,导致看似空的响应。但是,成功取决于您的内容类型建议和'msg.payload'对象声明,所以非常感谢! –