Problem bei Virtuellen Ausgang als POST konfigurieren funktioniert nicht

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #1

    Problem bei Virtuellen Ausgang als POST konfigurieren funktioniert nicht

    Hallo,

    Egal was ich versuche, ich kann die virtuelle Ausgabe nicht abrufen, um eine POST JSON Nachricht an eine PHP Website zu senden.

    Der "Befehl bei EIN" kommt und den Parameter, den ich hinzugefügt habe, kann ich auf der Website lesen.

    Im Miniserver habe ich eine Temperatur Sensor mit eine Virtuelle Ausgang verbunden

    Die Parameter:

    Virtueller Ausgang:
    Adresse: http://192.168.1.91:9081
    [v] Verbindung nach dem Senden schließen
    Trennzeichen ;

    Virtueller Ausgabebefehl:
    Befehl bei EIN /vzwloggerstatus/index.php?cmd=updatetemp
    HTTP-Erweiterungen bei EIN
    HTTP-Post-Befehle bei EIN {'Temperaturen':{'T-Buiten':'<v>'}}
    HTTP-Methode bei EIN POST
    HTTP-Methode bei AUS POST
    HTTP-Antwort speichern /user/common/updatetemp.xml
    Erste Wiederholung[s] 10
    Abstand der Wiederholung[s] 10
    [ ] Als Digitalausgang verwenden
    Einheit <v>

    GET und POST werden nach Erhalt auf der PHP-Website gedruckt
    logtofile("Test GET = \n". print_r($_GET, true));
    logtofile("Test POST = \n". print_r($_POST, true));

    Das gibt:
    2021.08.10 18:10:41 - IP 192.168.1.20 -
    Test GET = Array([cmd] => updatetemp)

    2021.08.10 18:10:41 - IP 192.168.1.20 -
    Test POST = Array()

    Der Inhalt des POST ist leer!

    HTTP-Antwort speichern = /user/common/updatetemp.xml
    Aber ich sehe nichts auf der Site:
    http://[Name]:[Passwort]@[Miniserver]:[Port]/dev/fsget/user/common/updatetemp.xml

    Hat jemand eine Idee, was hier falsch ist?

    Grüße
    Willy


    Angehängte Dateien
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11234

    #2
    HTTP-Erweiterungen bei EIN:
    Content-Type: application/json

    Ein JSON muss lt. Standard Doublequotes verwenden

    In PHP bekommst du mit $_POST nur Formulardaten (application/x-www-form-urlencoded), keinen RAW-String.

    Hier ein Beispiel, wie du zum JSON kommst:

    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • Gast

      #3
      Herzlich Vielen Dank,

      Der JSON war noch in einem Debug-Format.

      Der JSON ist jetzt mit Doublequotes und
      HTTP-Erweiterungen bei EIN: Content-Type: application/json

      Um das JSON in PHP zu erhalten, verwende ich:
      $input = file_get_contents('php://input');
      wie im Beispiel.

      Grüße
      Willy

      Kommentar

      Lädt...