Arduino esp8266设备从apache服务器发出请求时收到错误的请求错误
我正在将post请求从我的arduino设备发送到我的托管服务器,它给我400个错误请求。 相同的代码在本地主机上运行良好,但在托管服务器上不起作用。 我的arduino代码如下所示Arduino esp8266设备从apache服务器发出请求时收到错误的请求错误,apache,http-headers,webserver,arduino-esp8266,Apache,Http Headers,Webserver,Arduino Esp8266,我正在将post请求从我的arduino设备发送到我的托管服务器,它给我400个错误请求。 相同的代码在本地主机上运行良好,但在托管服务器上不起作用。 我的arduino代码如下所示 void callApi(String ID,String path,int comm,String message,int isResponseNeeded) { String serverPath="www.xyz.com";
void callApi(String ID,String path,int comm,String message,int isResponseNeeded) {
String serverPath="www.xyz.com";
String data = "{" ;
data = data + "\"id\": \""+ID+"\"," ;
data = data + "\"version\": \""+VERSION+"\"," ;
data = data + "\"command\": \""+comm+"\"," ;
data = data + "\"message\": \""+message+"\"" ;
data = data + "}" ;
Serial.print("Send data...on=>");
Serial.println(path);
if (wifiClient.connect(serverPath,80)) {
Serial.println(data);
wifiClient.println("POST /abc/xyz HTTP/1.1");
wifiClient.println("Content-Type: application/json");
wifiClient.print("Host: ");
wifiClient.println(serverPath);
wifiClient.print("Content-Length: ");
wifiClient.println(data.length());
wifiClient.print("\n");
wifiClient.print(data);
wifiClient.print("\n");
Serial.println("Data sent...Reading response..");
if(isResponseNeeded>0){
unsigned long timeout = millis();
while (wifiClient.available() == 0) {
if (millis() - timeout > 10000) {
Serial.println(">>> Client Timeout !");
break;
}
}
String response;
while(wifiClient.available()){
String line = wifiClient.readStringUntil('\n');
response=line;
Serial.println(response);
}
Serial.println(response.length());
}
把这个代码去掉。
{“id”:“u 60_1_94_f_a9_3c_”,“版本”:“1.10”,“命令”:“0”,“消息”:“}
数据已发送…正在读取响应
HTTP/1.1400错误请求
日期:2017年5月20日星期六05:13:41 GMT
服务器:Apache/2.4.18(Ubuntu)
内容长度:324
连接:关闭
内容类型:text/html;字符集=iso-8859-1
400错误请求
错误的请求
您的浏览器发送了此服务器无法理解的请求。
Apache/2.4.18(Ubuntu)服务器位于Ubuntu-512mb-nyc2-01.localdomain端口80
我猜API服务要求POST内容和正文为application/x-www-form-urlencoded