我想将一些文本发送到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;
}
答案 0 :(得分:0)
"请求标题字段丢失"服务器报告错误。看起来你错过了" From"和"用户代理"头。
"错误的语法" ESP8266可能会产生错误,我目前遇到了同样的问题。
答案 1 :(得分:0)
而不是使用AT命令。使用Arduino https://arduino-esp8266.readthedocs.io/en/latest/编码ESP8266。旧的Arduino命令也可以正常工作。