Node-Red POST多部分/表单数据(http请求)

时间:2018-03-26 07:29:34

标签: node.js httprequest multipartform-data node-red

我想使用Node-RED以multipart / form-data格式发布两个数据 (一个用于文本数据,一个用于语音数据)
我按如下方式设置了函数节点和http请求节点,但它似乎不是POST。

我认为有必要创建一个多部分主体并将其分配给msg.body,但我不知道如何创建一个多部分的语音数据体。
我不知道如何解决它,所以有人想告诉我。

功能节点

chrome.runtime.sendMessage({ action: "TOGGLE_OVERLAY", toVisible: true}) 

http请求(属性)

http request node pic installed by default

http request node property pic

方法⇒POST
网址⇒https://xxxxyyyzzz/
SSL /TLS⇒否
基本⇒否

输出⇒JSON

2 个答案:

答案 0 :(得分:0)

这是一个节点红色模块,能够发送多部分有效载荷。

https://flows.nodered.org/node/node-red-contrib-send-multipart

答案 1 :(得分:0)

http request Node-Red 核心节点支持 multipart/form-data POST 开箱即用。

使用此函数在 function 之前添加一个 http request 节点:

msg.headers = {};
msg.headers['Content-Type'] = 'multipart/form-data';
msg.headers['Accept'] = 'application/json';
msg.payload = {
    'apikey': msg.apiKey,
    'wav': {
        value: msg.payload.invoice.file,
        options: {
            filename: 'testtest.wav',
            contentType: 'audio/wav', // This is optionnal
        }
    }
}
return msg;

http request 节点在底层使用 Request nodejs 库,而这个节点使用 form-data 库作为 handling multipart,因此这些支持的所有选项都有效。

The source code of the relevant part of http request handling multipart.