ESP8266向网站发送数据错误请求

时间:2015-05-10 10:10:01

标签: apache arduino esp8266

我想将一些文本发送到Apache Server,但是我遇到了一些错误 我是ESP2866的新手。

我无法找到原因。

我收到了:" 400错误请求" ...... .Request标头字段丢失':' 分隔符:
然后我收到了一些错误: 语法错误......

我将以下标题发送到服务器:

  

POST /receiver.php HTTP / 1.1

     

主持人:192.168.1.9

     

内容类型:application / x-www-form-urlencoded

     

内容长度:20

     

温度= 35

我在Arduino中使用此代码:

 String cmd,aaa;
 aaa="temp="+35;
 cmd= "POST /temp.php HTTP/1.1\r\n";
 cmd+="Host: 192.168.1.9\r\n";
 cmd+="Content-Type: text/plain\r\nContent-Length: "+aaa.length();
 cmd+="\r\n\r\n"+aaa+"\r\n\r\n";


 Serial.print("Sending to Server: ");
 aaa= "AT+CIPSEND=";
 aaa+=cmd.length();
 aaa+="\r\n";

 Serial.println(sendData(aaa, 1000));
 Serial.println(sendData(cmd,2000));

 delay(1000);

这是sendData函数:

String sendData(String command, const int timeout)
{
  String response = "";

  esp.print(command); // send the read character to the esp8266

  long int time = millis();

  while ( (time + timeout) > millis())
  {
    while (esp.available())
    {
      // The esp has data so display its output to the serial window
      char c = esp.read(); // read the next character.
      response += c;
    }
  }
  return response;
}

2 个答案:

答案 0 :(得分:0)

"请求标题字段丢失"服务器报告错误。看起来你错过了" From"和"用户代理"头。

"错误的语法" ESP8266可能会产生错误,我目前遇到了同样的问题。

答案 1 :(得分:0)

而不是使用AT命令。使用Arduino https://arduino-esp8266.readthedocs.io/en/latest/编码ESP8266。旧的Arduino命令也可以正常工作。