0

我想向 Apache 服务器发送一些文本,但我收到一些错误我是 ESP2866 的新手。

我找不到原因。

我收到:“400 Bad 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;
}
4

2 回答 2

0

服务器报“Request Header Field is missing”错误。看起来您缺少“From”和“User-Agent”标头。

“错误语法”错误可能是由 ESP8266 产生的,我目前遇到了同样的问题。

于 2017-01-15T18:45:45.180 回答
0
aaa="temp="+35;

我认为这是问题所在。35 在这里是整数。这就是为什么 aaa 的值是一些奇怪的字符而不是“temp=35”。所以服务器没有捕捉到变量。

于 2021-08-12T06:11:12.840 回答