1
0
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:
ficeto
2015-05-01 02:43:51 +03:00
parent fbec557ddb
commit 81af3a061e
2 changed files with 42 additions and 7 deletions

View File

@@ -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();