Проводка двоичного буфера с использованием Node-RED
Я пытаюсь отправить байтовый массив через POST с помощью Node-RED. Я могу успешно создать буфер с помощью этого модуля и сохранить его в msg.payload
, Однако я не могу понять, как добавить его в качестве параметра в узле http-запроса.
Принимающее приложение требует заключающих в кавычки. Поэтому я использую полезную нагрузку в следующем URL: localhost:port/path?var=\"{{payload}}\"
, но это дает
"Ошибка преобразования http-параметров в args: недопустимый символ '\' ищет начало значения"
Если использовать его в URL запроса без кавычек: localhost:port/path?var={{payload}}
ничего не проходит (я вижу на другом конце).
Я использую Protobuf из-за приложения на другой стороне, но я также попытался создать буфер, как описано здесь. Однако ничего не меняется.
1 ответ
У POST не должно быть аргументов в URL. Все данные должны быть в теле.
Вам нужно сделать msg.payload
объект с ключами, совпадающими с именами arg.
msg.payload = {
var = [buffer]
}
Вам, вероятно, придется поиграться с заголовком типа контента, так как по умолчанию я считаю, что Node-RED отправит тело JSON, и вы, вероятно, захотите application/x-www-form-urlencoded
Вы можете установить заголовки, добавив msg.headers
объект