2016-03-05 44 views
3

我想使用ESP8266WebServer.h將所有以「/ robot」開頭的路徑發送到某個處理程序。我嘗試了幾個變體:在ESP8266WebServer中設置通配符

server.on ("/robot", handleDirection); 
server.on ("/robot/", handleDirection); 
server.on ("/robot/*", handleDirection); 

但是在每種情況下,它只會偵聽確切的路徑(包括那個*)。

這個庫不支持通配符路徑嗎?或者我錯過了如何去做?

回答

1

我在示例中找到了解決方法。我可以讓我找不到的處理程序直接檢查uri並處理這種情況。 IE,

void handleDirection(String path) { 
    int index = path.lastIndexOf('/'); 
    String direction = path.substring(index, path.length()); 
    Serial.println(direction); 
} 

void handleNotFound() { 
    String path = server.uri(); 
    int index = path.indexOf("/robot"); 
    if (index >= 0) { 
    handleDirection(path); 
    } 

    returnNotFound(); 
} 

void setup() { 
    [...] 
    server.onNotFound (handleNotFound); 
    [...] 
} 

它現在工作。如果其他人找到正確的方法,我將不回答問題。