はじめに
http requestを受け取る際にNode-REDは気が利く奴なので
整形したbody情報を渡してくれます。😇
また、raw bodyの情報は見えません。
メモリを食わないように気を使ってくれています。😍
でも、たまにraw bodyを取得したい。。
raw bodyを取得する。
多分、以下でraw bodyを取れます。(取れてるはず..)
encodeURIComponent(JSON.stringify(msg.payload))
RFC3986に忠実に変換する場合encodeURIComponentを以下に変更
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
RFC1738
function rawurlencode (str) {
return encodeURIComponent(str)
.replace(/!/g, '%21')
.replace(/'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29')
.replace(/\*/g, '%2A')
}
let requestBody = rawurlencode(msg.payload);
最後に
間違ってたら教えて下さい🙇