2016-03-05 52 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); 
    [...] 
} 

它现在工作。如果其他人找到正确的方法,我将不回答问题。