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

如何修复Arduino ESP8266连接Flask服务器时的400错误?

问题定位与解决方案

错误code 400, message Bad request version ('client!')的核心原因是ESP8266发送的HTTP请求格式不合法,具体是请求行中的HTTP版本字段被错误替换为了client!,导致Flask服务器无法识别合法的HTTP协议版本(如HTTP/1.1)。

修复步骤

  1. 检查并修正ESP8266的HTTP请求格式
    确保发送的请求严格遵循HTTP协议规范,请求行必须为[请求方法] [路径] HTTP/1.1格式,示例正确的请求代码片段:
    // 假设使用WiFiClient发送GET请求
    client.print(String("GET /your-endpoint HTTP/1.1\r\n") +
                 "Host: 192.168.1.20\r\n" +  // 必须包含Host字段,对应你的树莓派IP
                 "Connection: close\r\n\r\n");  // 末尾需添加两个换行表示请求头结束
    
  2. 排查常见错误点
    • 检查请求行中是否误将HTTP/1.1写成了client!或其他无效字符串
    • 确保请求头末尾有\r\n\r\n(两个连续换行),用于分隔请求头和请求体
    • 确认Host字段正确填写树莓派的IP地址或域名
  3. 验证请求内容
    在ESP8266代码中添加串口打印,输出发送的完整请求内容,便于排查格式问题:
    String request = String("GET /your-endpoint HTTP/1.1\r\n") +
                     "Host: 192.168.1.20\r\n" +
                     "Connection: close\r\n\r\n";
    Serial.println("发送的请求内容:");
    Serial.println(request);
    client.print(request);
    

额外提示

如果使用POST请求,需额外添加Content-Type和Content-Length字段,确保请求体格式与服务器端预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:05:56