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

如何将表单POST请求转换为ESP01 AT命令格式并解决报错?

解决ESP01通过AT命令发送POST表单数据的问题

前置要求

  • 确保ESP01已成功连接到WiFi网络,可通过以下命令验证:
    AT+CWJAP="你的WiFi SSID","WiFi密码"
    
    等待返回OK即表示连接成功。
  • 确认ESP01能访问目标服务器:使用AT+PING="服务器局域网IP",返回OK说明网络连通。
  • 部分ESP模块需先开启HTTP客户端功能:
    AT+HTTPCLIENT=1
    
    返回OK即可继续。

正确的AT+HTTPCPOST命令格式

你之前的错误在于将表单数据当作HTTP头部传递,且未设置正确的Content-Type头部。HTML表单的POST请求需要使用application/x-www-form-urlencoded格式,正确步骤如下:

  1. 发送HTTPCPOST命令,指定URL、请求体长度、头部数量及Content-Type头部:

    AT+HTTPCPOST="http://服务器局域网IP:5000/add_data",30,1,"Content-Type: application/x-www-form-urlencoded"
    

    注意:30是请求体Temperature=25.4&Humidity=52.2的字节长度,必须与实际长度完全匹配。

  2. 当模块返回>提示符后,输入请求体内容并发送:

    Temperature=25.4&Humidity=52.2
    
  3. 等待模块返回HTTP响应,若成功会返回OK及服务器的响应内容(如状态码200)。

备选方案:手动发送TCP格式的POST请求

如果AT+HTTPCPOST命令仍报错,可尝试直接建立TCP连接并发送完整HTTP请求:

  1. 建立TCP连接:

    AT+CIPSTART="TCP","服务器局域网IP",5000
    

    返回CONNECT表示连接成功。

  2. 发送完整的HTTP POST请求(注意换行符\r\n必须正确):

    POST /add_data HTTP/1.1\r\nHost: 服务器局域网IP:5000\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 30\r\n\r\nTemperature=25.4&Humidity=52.2
    
  3. 发送完成后关闭连接:

    AT+CIPCLOSE
    

关键注意事项

  • 不能使用127.0.0.1作为服务器地址,必须替换为服务器的局域网实际IP(如192.168.1.105)。
  • Content-Length的数值必须与请求体的字节数完全一致,否则服务器可能拒绝处理请求。
  • 不同版本的ESP AT命令可能存在细微差异,若命令不生效,可检查模块的AT固件版本是否最新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:49:14