From 56c89474134ae85d2c9587afc7702bae91426c3c Mon Sep 17 00:00:00 2001 From: James Marlowe Date: Mon, 21 Nov 2016 20:00:48 -0600 Subject: [PATCH 1/2] POST web server example Should help with the confusion around the plain keyword --- .../examples/PostServer/PostServer.ino | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 libraries/ESP8266WebServer/examples/PostServer/PostServer.ino diff --git a/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino b/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino new file mode 100644 index 0000000000..4e8c2dded0 --- /dev/null +++ b/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino @@ -0,0 +1,121 @@ +#include +#include +#include +#include + +const char* ssid = "........"; +const char* password = "........"; + +ESP8266WebServer server(80); + +const int led = 13; + +const String postForms = "\ + \ + ESP8266 Web Server POST handling\ + \ + \ + \ +

POST plain text to /postplain/


\ +
\ +
\ + \ +
\ +

POST form data to /postform/


\ +
\ +
\ + \ +
\ + \ +"; + +void handleRoot() { + digitalWrite(led, 1); + server.send(200, "text/plain", postForms); + digitalWrite(led, 0); +} + +void handlePlain() { + if (server.method() != HTTP_POST) { + digitalWrite(led, 1); + server.send(405, "text/plain", "Method Not Allowed"); + digitalWrite(led, 0); + } else { + digitalWrite(led, 1); + server.send(200, "text/plain", "POST body was:\n" + server.arg("plain")); + digitalWrite(led, 0); + } +} + +void handleForm() { + if (server.method() != HTTP_POST) { + digitalWrite(led, 1); + server.send(405, "text/plain", "Method Not Allowed"); + digitalWrite(led, 0); + } else { + digitalWrite(led, 1); + String message = "POST form was:\n"; + for (uint8_t i = 0; i < server.args(); i++) { + message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; + } + server.send(200, "text/plain", message); + digitalWrite(led, 0); + } +} + +void handleNotFound() { + digitalWrite(led, 1); + String message = "File Not Found\n\n"; + message += "URI: "; + message += server.uri(); + message += "\nMethod: "; + message += (server.method() == HTTP_GET) ? "GET" : "POST"; + message += "\nArguments: "; + message += server.args(); + message += "\n"; + for (uint8_t i = 0; i < server.args(); i++) { + message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; + } + server.send(404, "text/plain", message); + digitalWrite(led, 0); +} + +void setup(void) { + pinMode(led, OUTPUT); + digitalWrite(led, 0); + Serial.begin(115200); + WiFi.begin(ssid, password); + Serial.println(""); + + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + Serial.print("Connected to "); + Serial.println(ssid); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + if (MDNS.begin("esp8266")) { + Serial.println("MDNS responder started"); + } + + server.on("/", handleRoot); + + server.on("/postplain/", handlePlain); + + server.on("/postform/", handleForm); + + server.onNotFound(handleNotFound); + + server.begin(); + Serial.println("HTTP server started"); +} + +void loop(void) { + server.handleClient(); +} From cb4a3dd60c720999b5a366c2ecaac04bdd5bcad7 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Tue, 8 Oct 2019 05:41:15 -0700 Subject: [PATCH 2/2] Update WiFi settings vars, use LED_BUILTIN --- .../examples/PostServer/PostServer.ino | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino b/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino index 4e8c2dded0..35c100b266 100644 --- a/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino +++ b/libraries/ESP8266WebServer/examples/PostServer/PostServer.ino @@ -3,12 +3,17 @@ #include #include -const char* ssid = "........"; -const char* password = "........"; +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char* ssid = STASSID; +const char* password = STAPSK; ESP8266WebServer server(80); -const int led = 13; +const int led = LED_BUILTIN; const String postForms = "\ \