2013-11-26 46 views
1

我試圖讓我的arduino運行一個web服務器,但也不時發佈一個變量。我有以下代碼:Arduino獲取請求和主機服務器?

client.println("HTTP/1.1 200 OK"); 
client.println("Host: joeybabcock.me"); // 
client.print("GET /writetemplocalserv.php?t0=");  
client.println("Content-Type: text/html"); 
client.println(sensorValue); 
client.println("Connnection: close"); 

,整個代碼在這裏(這是如果你有相當多的所以只能期待通過。):http://pastebin.com/TXPccYs3 這不張貼變量。如果在網頁瀏覽器中訪問完全相同的網址,它確實可以工作。在編寫Web(HTTP)服務器和客戶端時務必始終遵循以下規定:

+0

這是一個請求或響應?這不是有效的HTTP。在向網絡投擲字節之前閱讀[RFC2161](http://www.ietf.org/rfc/rfc2616.txt)。 –

+0

我需要在程序的上下文中提交獲取請求,而不是客戶端連接時的標準響應。我有標準的迴應,只是沒有得到請求 – joeybab3

回答

2

RFC 2161,定義 /1.1。

你的代碼是一個很大的混亂:

client.println("HTTP/1.1 200 OK"); //Response 
client.println("Host: joeybabcock.me"); //Response/request 
client.print("GET /writetemplocalserv.php?t0="); //Request 
client.println("Content-Type: text/html"); //Response 
client.println(sensorValue); //Probably invalid... 
client.println("Connnection: close"); //Request/Response 

在一個非常,非常,非常簡單的方法,如果你想要求你做的事:

client.print("GET /writetemplocalserv.php?t0="); 
client.print(sensorValue); 
client.println(" HTTP/1.1"); 
client.println("Host: joeybabcock.me"); 
client.println(""); //mandatory blank line 

對於響應:

client.println("HTTP/1.1 200 OK"); 
client.println("Host: joeybabcock.me"); 
client.println("Content-Type: text/html"); 
client.println("Connection: close"); 
client.println(""); 
client.println("body data"); 
... 

同樣,任何HTTP請求/響應必須遵循RFC 2161

+0

謝謝,我沒有找到任何文件。 – joeybab3