ESP8266 HTTP-GET Request
Dieser Code dient als Basic-Code für Projekte mit deinem ESP8266. Der Code führt eine HTTP GET-Request an eine HTTP-API aus. Die API kann alles mögliche sein und spielt für das Programm keine Rolle.
Der Rückgabewert der API (falls vorhanden) wird in einer Variable gespeichert und kann mit dem ESP8266 weiterverarbeitet werden. Ein Weiterarbeiten mit dem Rückgabewert ist nicht zwingend Notwendig.
Der Code kann auch lediglich dazu verwendet werden, eine URL zu callen.
Der Code unterstützt nur die Request an einen HTTP-Server.
/* HTTP-GET Request Basic-Code für GET-Request an einen HTTP-Server Created by cooper, 2020 makesmart.net*/#include <ESP8266WiFi.h>#include <ESP8266HTTPClient.h>HTTPClient sender;// WLAN-Datenconst char* ssid = "WLAN_SSID";const char* password = "WLAN_PASSWD";void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(200); Serial.print("."); } Serial.println("Verbunden!"); if (sender.begin("http://makesmart-server/meine/api")) { // HTTP-Code der Response speichern int httpCode = sender.GET(); if (httpCode > 0) { // Anfrage wurde gesendet und Server hat geantwortet // Info: Der HTTP-Code für 'OK' ist 200 if (httpCode == HTTP_CODE_OK) { // Hier wurden die Daten vom Server empfangen // String vom Webseiteninhalt speichern String payload = sender.getString(); // Hier kann mit dem Wert weitergearbeitet werden // ist aber nicht unbedingt notwendig Serial.println(payload); } }else{ // Falls HTTP-Error Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str()); } // Wenn alles abgeschlossen ist, wird die Verbindung wieder beendet sender.end(); }else { Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!"); } }void loop() {}
Anpassungen
Zuerst müssen die WLAN-Daten angepasst werden
const char* ssid = "WLAN_SSID";const char* password = "WLAN_PASSWD";
Die API, die aufgerufen wird, ist in folgender Funktion definiert:
sender.begin("http://makesmart-server/meine/api");
Der zurückgegebene String wird mithilfe der getString()
-Funktion gespeichert.
String returned_data = sender.getString();
Disclaimer
Der Code funktioniert nur bei einer Request an einen HTTP-Server. Ich habe bereits eine zweite Version geschrieben, die Request an einen HTTPS-Server unterstützt. Dazu wird ein extra Basic-Code folgen.
Beispiele
Anbei ein paar Links & Inspirationen zur Verwendung dieses Codes.
Die Links werden weiter aktualisiert, wenn ich weiteres passendes finde.
Viel Spaß mit euren Projekten,
cooper
