在Node-RED中使用HTTP请求调用Restful API登录遇阻求助
Node-RED 配置HTTP请求节点实现设备登录
原JQuery登录代码核心参数解析
先明确原代码的关键请求信息:
- 请求地址:
http://192.168.10.11/sdcard/cpt/app/signin.php - 请求方法:POST
- 数据格式:
application/x-www-form-urlencoded(JQuery POST默认提交格式) - 提交数据:
user[name]=admin、user[password]=hellocpt - 响应格式:JSON
步骤1:配置HTTP请求节点
拖拽HTTP Request节点到画布,双击打开配置面板:
- Method:选择
POST - URL:填入
http://192.168.10.11/sdcard/cpt/app/signin.php - Return:选择
a parsed JSON object(对应原代码的dataType: 'json') - Payload:选择
application/x-www-form-urlencoded
步骤2:构造请求数据
有两种简单方式生成请求体:
方式一:Function节点
在HTTP请求节点前添加Function节点,写入以下代码:
msg.payload = { "user[name]": "admin", "user[password]": "hellocpt" }; return msg;
方式二:Change节点
添加Change节点,设置msg.payload为JSON对象:
{"user[name]": "admin", "user[password]": "hellocpt"}
步骤3:调试验证
在HTTP请求节点后连接Debug节点,部署流程后触发请求:
- 若请求成功,Debug面板会显示设备返回的JSON数据,此时即可对应原代码中
signin done的状态 - 若请求失败,查看Node-RED右上角菜单的日志,排查错误(比如网络不通、参数格式不匹配等)
常见排查点
- 确认树莓派与目标设备在同一局域网,能正常ping通
192.168.10.11 - 检查HTTP请求节点的超时时间,避免因设备响应慢导致超时
- Node-RED作为后端请求工具,无需考虑前端跨域问题,可直接排除该因素
内容的提问来源于stack exchange,提问作者mooose14
相关产品推荐
相关产品推荐

