Http Request mit wemos

Hallo!
Ich möchte einen http Request mit dem Wemos durchführen.
Dazu habe ich folgenden Code ausprobiert:

#include <ESP8266WiFi.h>
 

WiFiClient client;


//WLAN Verbindung einstellen
const char* ssid = "PBS-WLAN3";
const char* password =  "xxx";

char   HOST_NAME[] = "meinedomain.xx"; // hostname of web server:
String PATH_NAME   = "/arduino/huehnerschiebe/status.php";


void setup () {

  Serial.begin(9600);
  Serial.println("Beginn");  

  if (verbinden() == true) {

      Serial.println("tür zu schreiben");
      if (client.connect(HOST_NAME,80)) {
        String queryString = String("?tuer=süd&status=zu");
        Serial.println(PATH_NAME + queryString);
          client.println("GET " + PATH_NAME + queryString + " HTTP/1.1");
          client.println("Host: " + String(HOST_NAME));
          client.println("Connection: close");
          client.println(); // end HTTP header
      }
  }
  
}

void loop () {


}

bool verbinden() {
  WiFi.begin(ssid, password);
  int i=0;
  
  while (WiFi.status() != WL_CONNECTED) {
    if (i==10) {
      break;
    }
    delay(1000);
    Serial.println("Ich verbinde mich mit dem Internet...");
    i++;
    
  }
  if (WiFi.status() == WL_CONNECTED) {
      Serial.println("Ich bin mit dem Internet verbunden!");
    return true;
  }else {
      Serial.println("Ich bin nicht mit dem Internet verbunden!");
    return false;
  }

}

Eine Verbindung mit dem Internet wird hersgestellt und der PATH_NAME + queryString sollte auch passen. Leider werden aber in der Datenbank keine Daten hinzugefügt.

Wenn ich den Pfad manuell in einem Browser eingebe:
meinedomain.xx//arduino/huehnerschiebe/status.php?tuer=süd&status=zu
dann funktioniert es.

Hoffe es kann mir jemand weiterhelfen, wo da mein Fehler liegen könnte.
Vielen Dank

wenn du sowas im Quellcode vom ESP schreiben musst, dann verwendest du die falsche Ausgangsbasis.

Sie dir die Beispiele zum

#include <ESP8266HTTPClient.h>

an und arbeite diese durch!

generell würde ich Umlaute/Sonderzeichen vermeiden

?tuer=süd

Danke für die Antwort.
Ich habe es nun wie folgt geändert:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
 
WiFiClient client;


//WLAN Verbindung einstellen
const char* ssid = "PBS-WLAN3";
const char* password =  "xxx";

char   HOST_NAME[] = "http://meinedomain.xx"; // hostname of web server:
String PATH_NAME   = "/arduino/huehnerschiebe/status.php";


void setup () {

  Serial.begin(9600);
  Serial.println("Beginn");  

  if (verbinden() == true) {

    Serial.println("tür zu schreiben");
    HTTPClient http;  //Declare an object of class HTTPClient
    String queryString = String("?tuer=süd&status=zu");
    
    
    http.begin(client, String(HOST_NAME) + PATH_NAME + queryString );  //Specify request destination
    int httpCode = http.GET(); //Send the request
 
    if (httpCode > 0) { //Check the returning code
 
      //String payload = http.getString();   //Get the request response payload
      Serial.println("gespeichert");             //Print the response payload
 
    }
 
    http.end();   //Close connection
  }
  
}

void loop () {


}

bool verbinden() {
  WiFi.begin(ssid, password);
  int i=0;
  
  while (WiFi.status() != WL_CONNECTED) {
    if (i==10) {
      break;
    }
    delay(1000);
    Serial.println("Ich verbinde mich mit dem Internet...");
    i++;
    
  }
  if (WiFi.status() == WL_CONNECTED) {
      Serial.println("Ich bin mit dem Internet verbunden!");
    return true;
  }else {
      Serial.println("Ich bin nicht mit dem Internet verbunden!");
    return false;
  }

}

gespeichert wird ausgegeben, aber leider keine Speicherung in der Datenbank.
Oder habe ich das falsche Beispiel verwendet?
Danke nochmals

Du hast ein ü in dem URL. Das könnte Probleme machen. Verwende besser "sued" oder wandle es in utf8 um ?tuer=s%C3%BCd&status=zu. Ersteres wird auf Dauer einfacher sein.

Danke für den Hinweis.
Dachte nicht, dass ein umlaut so ein Problem macht.
Danke

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.