Arduino esp8266设备从apache服务器发出请求时收到错误的请求错误

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";

我正在将post请求从我的arduino设备发送到我的托管服务器,它给我400个错误请求。 相同的代码在本地主机上运行良好,但在托管服务器上不起作用。 我的arduino代码如下所示

    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