如何将Python HTTP表单请求转换为Node-RED流程?
如何将带表单数据的Python HTTP请求转换为Node-RED流程?
首先拆解下你的Python代码逻辑:它发送了一个POST请求到http://127.0.0.1:5000/read,并且将read_req字典作为**application/x-www-form-urlencoded格式的表单数据**发送(这是requests.post传入字典参数时的默认行为)。下面给你两种适配场景的解决方案:
一、完全复刻Python代码的表单数据请求
Node-RED的HTTP请求节点其实完全支持发送表单数据,只是需要正确配置:
- 拖入HTTP请求节点,双击打开配置面板:
- 设置
方法为POST - 设置
URL为http://127.0.0.1:5000/read - 按需选择
输出格式(比如UTF-8字符串)
- 设置
- 配置消息负载:
用函数节点或者注入节点设置请求的表单数据,示例函数代码:msg.payload = { "address": "12345:2", "object_type": "analogValue", "object_instance": "302" }; // 无需手动设置Content-Type,HTTP请求节点会自动识别payload为字典,自动适配表单数据格式 return msg; - 连接节点:注入/函数节点 → HTTP请求节点 → 调试节点,部署后触发即可看到请求结果。
二、若需发送JSON格式请求(对应你提供的JS函数)
如果你的后端接口实际期望接收application/json格式的数据,你提供的函数是完全可以直接集成的,甚至还可以简化:
// 无需手动设置headers,Node-RED会自动检测payload为JSON对象,自动设置Content-Type为application/json msg.payload = {"address": "12345:2", "object_type": "analogValue", "object_instance": "302"}; return msg;
只需确保HTTP请求节点的方法设为POST、URL配置正确,将这个函数节点与HTTP请求节点连接即可。
关键区分点
- 表单数据请求:
msg.payload设为普通字典,HTTP节点自动适配application/x-www-form-urlencoded格式,对应你原Python代码的行为 - JSON请求:
msg.payload设为JSON对象,节点自动适配application/json格式,对应你提供的JS函数逻辑
内容的提问来源于stack exchange,提问作者bbartling
相关产品推荐
相关产品推荐

