ESP8266 HTTP-GET Request

ESP8266 Apr. 22, 2020
https://my.makesmart.net/topic/67/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

makesmart.shop - ESP8266 D1 Mini
ESP8266 D1 Mini Entwicklerboard für Arduino IDE. Integrierte USB-Schnittstelle zum Programmieren und eingebaute WLAN-Funktion onBoard. Perfekt für Io…

Community

Die makesmart Community ist der Ort, an dem du deine Ideen mitteilen und deine Erfahrungen austauschen kannst.

Großartig! Das Abonnement wurde erfolgreich abgeschlossen.
Großartig! Schließe als Nächstes die Kaufabwicklung ab, um vollen Zugriff zu erhalten.
Willkommen zurück! Du hast dich erfolgreich angemeldet.
Erfolg! Dein Konto ist vollständig aktiviert, du hast jetzt Zugang zu allen Inhalten.