You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32无法连接Google Cloud VM部署的Node-RED httpin节点发送POST/GET请求

解决方案

1 修复代码基础错误

你当前URLWebServer变量携带了http://前缀,而webClient.connect()方法仅接受纯IP/域名作为入参,前缀会导致地址解析失败,直接修改参数定义即可:

String URLWebServer          = "222.222.111.128"; // 移除http://前缀
int    PortWebServer         = 1880;
String uploadScript          = "/json"; 

修改后先测试连接是否能成功,若还是失败继续排查以下网络配置问题。

2 检查Google Cloud防火墙规则

  • 进入GCP控制台对应虚拟机的「防火墙规则」配置页,确认存在1880端口的入站允许规则
  • 确认规则的源IP范围包含你ESP32所在网络的公网出口IP,测试阶段可临时将源IP设为0.0.0.0/0验证是否为IP限制问题(验证完成后及时修改回指定IP段,避免安全风险)

3 检查Debian虚拟机本地配置

登录Debian虚拟机执行以下操作:

  • 执行ufw status查看系统防火墙状态,若已启用需执行ufw allow 1880/tcp放行1880端口
  • 执行netstat -tunlp | grep 1880确认Node-RED监听地址为0.0.0.0:1880,若仅监听127.0.0.1,需要修改Node-RED的settings.js配置文件,将uiHost参数改为0.0.0.0后重启Node-RED服务

4 后续POST请求适配提示

连接成功后需要确认Node-RED侧的配置:

  • http in节点的请求方法需设置为POST
  • 你当前代码提交的是multipart/form-data格式数据,需确认Node-RED流配置支持该格式解析,若你需要提交纯JSON格式,可调整请求头的Content-Type为application/json,并修改请求体为JSON字符串
  • 流末尾必须添加http response节点,否则ESP32端会等待响应超时

内容的提问来源于stack exchange,提问作者Paulo Borges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:54:03