簡體   English   中英

Arduino保存http變量

[英]Arduino save http variable

當我收到HTTP消息時,我想在Arduino上進行比較。 我可以看到所有請求。 我如何保存最后顯示的'hello'並運行如下代碼:如果'hello',則執行某些操作。

char buffer;
while (client.connected()) {
while (client.available()) {
buffer = client.read();
Serial.print(buffer);
}}
Serial.println("Closing connection");
Serial.println("");
client.close();

串行監視器:

Connect to 192.168.2.101:80
Connected & Data sent
TTP/1.1 200 OK
Date: Sun, 30 Mar 2014 20:27:43 GMT
Server: Apache/2.2.25 (Win32) mod_ssl/2.2.25 OpenSSL/0.9.8y
X-Powered-By: ZendServer 6.3.0
Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/
Connection: close
Content-Type: text/html

helloClosing connection

您需要解析HTTP請求。 因為有限的RAM,將所有請求都保留在內存中並不是一個好主意,但是請看一下請求:您有一個由\\n\\r分隔的標頭列表,然后有一個空行( \\n\\r ),然后是您需要的內容。

因此,您必須查找\\n\\r\\n\\r ,然后保存結果。 類似的東西:

char what[] = "\r\n\r\n";
String ris = "";
int eq = 0;
while (client.connected()) {
    while (client.available()) { //we assume all data to be in a single TCP packet.
        buffer = client.read();
        if (eq == 4){
            ris += buffer;
        }else{
            if (buffer == what[eq]){
                eq++;
            }else{
                eq = 0;
            }
        }
    }
    Serial.print("readed: ");
    Serial.println(ris);
    //here send answer
    client.close();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM