Difficultés requêtes HTTP

Hello,

Je rencontre une petite difficultée avec les requêtes HTTP en POST.

Soit c’est un bug, soit je ne l’utilise pas correctement ^^

J’ai un curl qui fonctionne:

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 et Tel masqué volontairement :wink: )

J’ai voulus le faire passer dans la requête HTTP de Gladys et à chaque fois j’avais comme retour que la Api-Key été incorrecte alors que c’était la même que dans le curl qui fonctionne.

Log Apache

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"

Je voulais donc savoir ce que Gladys envoyé réellement, j’ai créer une page php de test qui m’affiche le contenu du Header.

Voilà la réponse:

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>

Je n’ais pas dans le Header la variable ‘X-Api-Key’ que j’ai passé.

S’agit-il d’un bug ou je fait pas quelque chose correctement ?

Autre question en parallèle, mes paramètres data ‘-d’ correspondent à la partie Body dans gladys ou il n’y a pas possibilité d’intégrer des variables data depuis Gladys ?

Merci

Je viens de faire un test, et je confirme qu’il y a un bug, ça ne marche pas ^^

Tu peux créer une issue Github avec ce même retour ? Merci en tout cas pour ton retour ! :slight_smile:

C’est bon bug report créé Requêtes HTTP POST dans les scènes ne fonctionne plus · Issue #1473 · GladysAssistant/Gladys · GitHub :wink:

Pour ma question en fin de message, est-ce qu’un paramètre -d dans un curl correspond au Body dans Gladys ?

Merci :slight_smile:

Le problème vient du fait que le bouton “essayer” envoie un tableau (array) mais la méthode côté backend attend un object.

@pierre-gilles je voulais fixer ce problème, mais je me suis dit qu’il serait intéressant de faire également la transformation de variables avec Handlebars. Mais je pense que ce sera compliqué depuis le bouton “essayer”, car nous n’avons pas le “scope” qui contient les valeurs des variables.

Ah effectivement ! D’ailleurs quick fix en attendant, à mon avis @Checconio en attendant si tu test ta scène en faisant “exécuter” la scène au lieu de “essayer” le bloc HTTP, ça devrait marcher.

Effectivement c’est un autre chantier ! Après on est pas obligé d’envoyer les vrais valeurs dans un “essayer”, on peut juste envoyer un placeholder des variables. Si on met un message pour dire que les variables seront remplacés par des valeurs de test, je pense que ça peut être déjà bien :slight_smile:

Je confirme le “hack” en attendant que le bug du “essayer” soit fixé, si tu test la scène via le bouton “Démarrer” global à la scène, ça fonctionne bien :

Pardon j’avais zappé cette question, j’ai du faire quelques recherches pour me renseigner.

Je suis pas expert Curl mais je pense que oui, en gros le body Gladys correspond au body d’une requête HTTP POST.

Qu’entend tu par “des variables data” ?

Les variables data en curl, c’est ce qui compose effectivement le body.

C’est donc bien la même chose entre un curl et gladys du coup :slight_smile:

Je vais tester ma scène sans utiliser le bouton essyer, merci :wink:

1 Like

Top !

Pour info j’ai fixé le bug, c’était tout simple.

C’est dans une PR ici :

ça partira probablement dans la prochaine release de Gladys. Merci pour ton retour :slight_smile:

1 Like

Pas de soucis :wink:

Et je te confirme le bon fonctionnement de ma requête HTTP après avoir trouvé la bonne syntaxe :smiley:

Je ferait surement un tuto sur l’envoi de SMS à partir de Gladys :stuck_out_tongue:

2 Likes

Génial ! Bonne idée pour le tuto, ça aidera du monde :slight_smile: