2017-08-15 60 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'對象聲明,所以非常感謝! –

相關問題