From 20a022b3f787a9bac097395f5db8c534491cebee Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Wed, 2 Oct 2024 10:18:35 +0200 Subject: [PATCH] Added chunk example --- examples/SimpleServer/SimpleServer.ino | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/examples/SimpleServer/SimpleServer.ino b/examples/SimpleServer/SimpleServer.ino index 899c77d..3edd6d5 100644 --- a/examples/SimpleServer/SimpleServer.ino +++ b/examples/SimpleServer/SimpleServer.ino @@ -307,6 +307,23 @@ void setup() { request->send(LittleFS, "/index.html"); }); + /* + Chunked encoding test: sends 16k of characters. + ❯ curl -N -v -X GET -H "origin: http://192.168.4.1" http://192.168.4.1/chunk + */ + static const char characters[] = "1234567890"; + static size_t charactersIndex = 0; + server.on("/chunk", HTTP_HEAD | HTTP_GET, [](AsyncWebServerRequest* request) { + AsyncWebServerResponse* response = request->beginChunkedResponse("text/html", [](uint8_t* buffer, size_t maxLen, size_t index) -> size_t { + if (index >= 16384) + return 0; + memset(buffer, characters[charactersIndex], maxLen); + charactersIndex = (charactersIndex + 1) % 10; + return maxLen; + }); + request->send(response); + }); + /* ❯ curl -I -X HEAD http://192.168.4.1/download HTTP/1.1 200 OK