mirror of
https://github.com/esp8266/Arduino.git
synced 2025-11-19 19:03:30 +03:00
adding extra finctionaity the the web server
void onNotFound(bool(void)) handler routes and errors not in the defined handlers int args() returns nubmer of currentarguments String arg(int i) returns the "i" argument value String argName(int i) returns the "i" argument name(key) bool hasArg(const char * name) looks up if an argument exist by seraching for it's key
This commit is contained in:
@@ -221,6 +221,32 @@ String ESP8266WebServer::arg(const char* name)
|
||||
return String();
|
||||
}
|
||||
|
||||
String ESP8266WebServer::arg(int i)
|
||||
{
|
||||
if (i < _currentArgCount)
|
||||
return _currentArgs[i].value;
|
||||
return String();
|
||||
}
|
||||
|
||||
String ESP8266WebServer::argName(int i)
|
||||
{
|
||||
if (i < _currentArgCount)
|
||||
return _currentArgs[i].key;
|
||||
return String();
|
||||
}
|
||||
|
||||
int ESP8266WebServer::args(){
|
||||
return _currentArgCount;
|
||||
}
|
||||
|
||||
bool ESP8266WebServer::hasArg(const char* name)
|
||||
{
|
||||
for (int i = 0; i < _currentArgCount; ++i) {
|
||||
if (_currentArgs[i].key == name)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void ESP8266WebServer::_parseArguments(String data)
|
||||
{
|
||||
@@ -293,6 +319,9 @@ void ESP8266WebServer::_parseArguments(String data)
|
||||
|
||||
}
|
||||
|
||||
void ESP8266WebServer::onNotFound(TNotFoundHandlerFunction fn){
|
||||
_notFoundHandler = fn;
|
||||
}
|
||||
|
||||
void ESP8266WebServer::_handleRequest(WiFiClient& client, String uri, HTTPMethod method) {
|
||||
_currentClient = client;
|
||||
@@ -312,12 +341,12 @@ void ESP8266WebServer::_handleRequest(WiFiClient& client, String uri, HTTPMethod
|
||||
break;
|
||||
}
|
||||
|
||||
if (!handler)
|
||||
{
|
||||
if (!handler){
|
||||
#ifdef DEBUG
|
||||
Serial.println("request handler not found");
|
||||
#endif
|
||||
send(404, "text/plain", String("Not found: ") + uri);
|
||||
if(!_notFoundHandler || !_notFoundHandler())
|
||||
send(404, "text/plain", String("Not found: ") + uri);
|
||||
}
|
||||
|
||||
_currentClient = WiFiClient();
|
||||
|
||||
Reference in New Issue
Block a user