2017-03-26 62 views
1

我通過esp8266發送HTTP請求時收到HTTP錯誤代碼411。該請求必須分塊或具有內容長度,但我的http請求沒有正文。我能做些什麼來發布它?HTTP請求在沒有正文的esp8266中發佈POST

Serial.print("Requesting POST: "); 
client.println("POST /communitysafeapi/Alert/1/1/0 HTTP/1.1"); 
client.println("Host: camilledata.cloudapp.net"); 
client.println("Accept: */*"); 
client.println("Content-Type: application/json"); 
//client.print("Content-Length: "); 
//client.println(content.length()); 
client.println(); 

回答

1

在沒有主體的情況下使用HTTP POST請求並不是首選方式,但它是可以的。

從IETF草案document

POST方法用於請求源服務器接受 表示封閉在請求作爲數據由 目標資源進行處理。

您將它添加到你的頭,以避免411錯誤你的情況:

Content-Length: 0 

還是會轉而使用HTTP GET請求後,如果想觸發服務器端的一些狀態。

+0

我以前嘗試過,但我不從服務器 –

+0

我得到了這個答案得到:HTTP錯誤400有一個無效的內容長度或請求中的塊長度。 –

+1

你說用相同的方式解決:) – cagdas

0

我決定將它添加到這樣的問題

client.println("Content-Length: "+String(0)+""); 
+1

aka'client.println(「Content-Length:0」);'(不需要模板) – dandavis