further improvments, [this] in lambda fcn callback, compressed gz webfiles via streamFile()

This commit is contained in:
Simon Schmidt 2021-06-26 09:21:34 +02:00
parent e8329f2587
commit 10b57ca516
5 changed files with 41 additions and 19 deletions

BIN
data/comp.html.gz Normal file

Binary file not shown.

12
data/compress.html Normal file
View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<title>Ich bin ein komrpimierter Test</title>
I bims der Head
</head>
<body>
I bims der Body
</body>
</html>

Binary file not shown.

View File

@ -46,6 +46,34 @@ public:
streamFile(f, cont);
}
});
on("/comp.html", [this]() {
File f = open("/comp.html.gz");
if (!f) {
Serial.println("Failed to open file for reading");
}
else
{
Serial.println("Streaming /comp.html.gz to client");
const String cont = "text/html";
streamFile(f, cont);
}
});
onNotFound([this]() {
String message = "File Not Found\n\n";
message += "URI: ";
message += uri();
message += "\nMethod: ";
message += (method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += args();
message += "\n";
for (uint8_t i = 0; i < args(); i++) {
message += " " + argName(i) + ": " + arg(i) + "\n";
}
send(404, "text/plain", message);
});
if( this->addRootFileHandler() ){
this->begin();

View File

@ -34,8 +34,7 @@ void timerCallback(void *pArg)
stairs.task();
}
// HTTP
void handleNotFound();
// port 80, root directory of server '/'
HTTPServer httpServer(80, "/");
uint32_t _t=0;
@ -44,22 +43,6 @@ uint32_t _t=0;
// ===============================================
void handleNotFound() {
String message = "File Not Found\n\n";
message += "URI: ";
message += httpServer.uri();
message += "\nMethod: ";
message += (httpServer.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += httpServer.args();
message += "\n";
for (uint8_t i = 0; i < httpServer.args(); i++) {
message += " " + httpServer.argName(i) + ": " + httpServer.arg(i) + "\n";
}
httpServer.send(404, "text/plain", message);
}
void setup() {
#ifdef WITH_DEBUGGING_ON
@ -95,7 +78,6 @@ void setup() {
ota_setup();
httpServer.start();
httpServer.onNotFound(handleNotFound);
Serial.println("HTTP server started !");
stairs.setup();