HTML Request POST

Hallo.
Versuche einen HTML-Aufruf zu senden (POST), komme dabei leider nicht weiter.
Bsp: html://10.x.x.x:81/sende?data=wert(x)
Gescheitert mit, wie muss der Code aussehen?

  WiFiClient dataclient
  if (dataclient.connect("10.x.x.x", 81)) {
      dataclient.println("POST /sende?data=wert(x)");
      
      while(dataclient.connected())  
      {
        while(dataclient.available())
        {
        char ch = dataclient.read();
        Serial.write(ch);
        }
      }
    dataclient.stop();
    delay(200);  
  }

Danke.

1 Like

Hallo @sense-it,

so wie Du Deine Frage stellst, kann man nur orakeln, was Du überhaupt vor hast und woran es scheitert!

Ich würde Dir folgende Vorgehensweise empfehlen:

1.) Werde Dir darüber klar, zu wem Du etwas senden willst. Da Du hier im senseBox-Forum schreibst, vermute ich, dass Du Sensordaten an OpenSenseMap senden willst? Dann lautet die Adresse:

  • wenn Du unverschlüsseltes HTTP machen willst: ingress.opensensemap.org auf Port 80
  • Alternativ (besser aber komplizierter) verschlüsselt, also HTTPS: api.opensensemap.org auf Port 443

2.) Wenn Du weißt, zu wem Du etwas schicken willst, solltest Du Dir die Frage beantworten, was Du dort hinsenden möchtest. Ich nehme an Sensordaten. Hat Deine Box einen, oder mehrere Sensoren? Nachdem du die Box registriert und die Sensoren angelegt hast, musst Du Dir die ID der Box und die IDs der Sensoren raussuchen, denn die musst Du angeben, sonst weiß OpenSenseMap nicht, welche der tausenden Boxen und Sensoren Du überhaupt bist.

3.) Wie der API-Aufruf (also das HTTP) genau aussehen muss, ist dokumentiert. Das solltest Du lesen und versuchen zu verstehen, denn es beantwortet die Frage, was Du genau dort hinschicken musst, damit es auch verstanden wird:
https://docs.opensensemap.org/#api-Measurements-postNewMeasurement

Schau Dir auch den Beispielcode an, den Du beim Registrieren der Box bekommst.

Gruß,
Sebastian

Hi @mv-meisenknoedel.
Danke für die Antwort. Es geht nicht um das Versenden nach oSM. Das ist soweit funktional.
Es geht darum per http request an weitere Systeme die Daten zu versenden, eine Unterscheidung nach den Sensoren ist natürlich klar. Deshalb die allgemeine Frage, wie ein Aufruf der Art html://10.x.x.x:81/sende?data=wert(x), also an Adresse x.x.x.x mit Portangabe versendet werden kann.

Danke und Gruß

Dann solltest Du Dir ähnliche Fragen wie oben beantworten, nur eben für die von Dir gemeinten „weiteren Systeme“. html://... hört sich schon mal nicht richtig an.