123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #if defined(ARDUINO_ARCH_ESP8266)
- #include <ESP8266WiFi.h>
- #include <ESP8266WebServer.h>
- #elif defined(ARDUINO_ARCH_ESP32)
- #include <WiFi.h>
- #include <WebServer.h>
- #endif
- #include <PageBuilder.h>
- // Modify according to your Wi-Fi environment.
- #define SSID "wifissid"
- #define PSK "wifipassword"
- // This example shows the utility to send http response
- // independently in the token function.
- // If the sketch sends independently http response within
- // the token function then it must inform to the PageBuilder
- // about sending stop for http:200.
- #if defined(ARDUINO_ARCH_ESP8266)
- ESP8266WebServer server;
- #elif defined(ARDUINO_ARCH_ESP32)
- WebServer server;
- #endif
- String tokenFunc(PageArgument&);
- PageElement elm("{{RES}}", {{ "RES", tokenFunc }});
- PageBuilder page("/", { elm }); // Accessing "/" will call the tokenFunc.
- PageElement elmHello("hello, world");
- PageBuilder pageHello("/hello", { elmHello });
- // The tokenFunc returns no HTML and sends redirection-code as
- // particular response by an owned http header.
- String tokenFunc(PageArgument& args) {
- // When accessing "/", it sends its own http response so that
- // it will be transferred to "/hello".
- server.sendHeader("Location", "/hello", true);
- server.sendHeader("Connection", "keep-alive");
- server.send(302, "text/plain", "");
- server.client().stop();
- // The cancel method notifies sending stop to the PageBuilder.
- page.cancel();
- return "";
- }
- void setup() {
- delay(1000);
- Serial.begin(115200);
- Serial.println();
- WiFi.mode(WIFI_STA);
- WiFi.begin(SSID, PSK);
- while (WiFi.waitForConnectResult() != WL_CONNECTED) {
- delay(300);
- }
- page.insert(server);
- pageHello.insert(server);
- server.begin();
- Serial.println("http server:" + WiFi.localIP().toString());
- }
- void loop() {
- server.handleClient();
- }
|