Schwierigkeiten mit HTTP-Anfragen

Hallo,

Ich habe ein kleines Problem mit HTTP-POST-Anfragen.

Entweder ist es ein Bug oder ich verwende es nicht richtig ^^

Ich habe einen funktionierenden curl:

curl -X POST http://127.0.0.1:8080/raspisms/api/scheduled/ -H 'X-Api-Key: XXXXX' -d 'text=Mon%20SMS%20d%27exemple' -d 'numbers=%2B33000000000'

(Key und Telefonnummer wurden absichtlich ausgeblendet :wink: )

Ich wollte es in die HTTP-Anfrage von Gladys umwandeln, aber jedes Mal erhielt ich die Rückmeldung, dass die Api-Key ungültig sei, obwohl es dieselbe wie in dem funktionierenden curl war.

Apache-Log

127.0.1.1:80 127.0.0.1 - - [15/Mar/2022:23:20:29 +0100] "POST /raspisms/api/scheduled/ HTTP/1.1" 401 510 "-" "GladysAssistant/v4.8.0"

Ich wollte also wissen, was Gladys tatsächlich sendet, und habe eine Test-PHP-Seite erstellt, die den Header-Inhalt anzeigt.

Hier ist die Antwort:

Host: XXXXXXXX <br />X-Real-IP: XX.XX.XXX.XXX <br />X-Forwarded-Proto: https <br />Connection: upgrade <br />Content-Length: 0 <br />0: [object Object] <br />Accept: application/json, text/plain, */* <br />Content-Type: application/x-www-form-urlencoded <br />user-agent: GladysAssistant/v4.8.0 <br /></body>
</html>

Ich habe die Variable ‹ X-Api-Key › nicht im Header, die ich übergeben habe.

Handelt es sich um einen Bug oder mache ich etwas falsch?

Eine weitere parallele Frage: Entsprechen meine Datenparameter ‹ -d › dem Body-Teil in Gladys oder gibt es keine Möglichkeit, Datenvariablen von Gladys aus zu integrieren?

Danke

Ich habe gerade einen Test gemacht und bestätige, dass es einen Bug gibt, es funktioniert nicht ^^

Kannst du eine Github-Issue mit dieser Rückmeldung erstellen? Danke auf jeden Fall für dein Feedback! :slight_smile:

Guter Bug-Report erstellt Button "try http request" in scene doesn't add headers properly · Issue #1473 · GladysAssistant/Gladys · GitHub :wink:

Zu meiner Frage am Ende der Nachricht: Entspricht ein Parameter -d in einem curl dem Body in Gladys?

Danke :slight_smile:

Das Problem besteht darin, dass der „Ausprobieren“-Button ein Array sendet, aber die Backend-Methode ein Objekt erwartet.

@pierre-gilles Ich wollte dieses Problem beheben, aber ich dachte, es wäre interessant, auch die Variablentransformation mit Handlebars durchzuführen. Aber ich glaube, das wird vom „Ausprobieren“-Button aus schwierig sein, da wir nicht den „Scope“ haben, der die Variablenwerte enthält.

Ah tatsächlich! Übrigens, als schnelle Lösung, bis es behoben ist, würde ich sagen, @Checconio, wenn du deine Szene testest, indem du die Szene „ausführst“ statt den HTTP-Block „ausprobierst“, sollte es funktionieren.

Tatsächlich ist das ein anderes Projekt! Aber man muss nicht die echten Werte im „Ausprobieren“ senden, man kann einfach Platzhalter für die Variablen senden. Wenn man eine Nachricht hinzufügt, die besagt, dass die Variablen durch Testwerte ersetzt werden, denke ich, dass das schon gut sein könnte :slight_smile:

Ich bestätige den „Hack“, bis der Bug von „versuchen“ behoben ist. Wenn du die Szene über den globalen „Start“-Button der Szene testest, funktioniert es gut:

Entschuldige, ich hatte diese Frage übersehen, ich musste ein paar Recherchen anstellen, um mich zu informieren.

Ich bin kein Curl-Experte, aber ich denke, ja, im Grunde entspricht der Body von Gladys dem Body einer HTTP-POST-Anfrage.

Was meinst du mit « Variablen data »?

Die Datenvariablen in curl sind das, was tatsächlich den Body bildet.

Es ist also dasselbe zwischen einem curl und gladys :slight_smile:

Ich werde meine Szene ohne die Schaltfläche „Testen“ testen, danke :wink:

Top!

Nur zur Info, ich habe den Bug behoben, es war ganz einfach.

Das ist in einem PR hier:

Das wird wahrscheinlich in der nächsten Gladys-Release enthalten sein. Danke für dein Feedback :slight_smile:

Kein Problem :wink:

Und ich bestätige dir, dass meine HTTP-Anfrage nach dem Finden der richtigen Syntax einwandfrei funktioniert :smiley:

Ich werde sicherlich ein Tutorial zum Versenden von SMS über Gladys machen :stuck_out_tongue:

Genial! Gute Idee für das Tutorial, das wird vielen helfen :slight_smile: