Requête POST avec HTTP Request

Bonjour,

Comment appeler la requête cURL suivante qui fonctionne avec Postman dans 4D avec un HTTP Request ?

curl -X POST
https://monURL/token
-H ‘Content-Type: application/x-www-form-urlencoded’
-d ‘grant_type=client_credentials&client_id=orkis&client_secret=jepeuxpasdonnerlecode’

Après moultes essais, j’ai essayé le code suivant inspiré par un post de Bruno Legay :

<code 4D>
C_TEXTE($Texte;$URL_Auth;$Client_id;$Client_secret)
C_OBJET($tmp)

$URL_Auth:=“https://monURL/token
$Client_id:=“orkis”
$Client_secret:=“jepeuxpasdonnerlecode”

OB FIXER($tmp;“grant_type”;“client_credentials”)
OB FIXER($tmp;“client_id”;$Client_id)
OB FIXER($tmp;“client_secret”;$Client_secret)
$Texte:=JSON Stringify($tmp)

TABLEAU TEXTE($nomsEnTêtes;0)
TABLEAU TEXTE($valeursEnTêtes;0)
AJOUTER À TABLEAU($nomsEnTêtes;“Content-Type”)
AJOUTER À TABLEAU($valeursEnTêtes;“application/x-www-form-urlencoded”)

$Ok:=HTTP Request(HTTP méthode POST;$URL_Auth;$Texte;$Réponse;$nomsEnTêtes;$valeursEnTêtes)

</code 4D>

mais j’ai une erreur 400 avec dans Réponse le message suivant :
{“error”:“invalid_request”,“error_description”:“Missing form parameter: grant_type”}

Pourtant, il y est bien mon grant_type. Elle est où mon erreur ???

Merci d’avance pour votre aide !

Philippe

C_OBJECT translates to application/json.

if you want to send application/x-www-form-urlencoded,

you need to use C_TEXT and build your payload

foo=bar&foo2=bar2&…

you need to URI escape the values too.

Thank you Miyako, celui là, je l’avais testé, mais quand je mettais tout dans la requête sans rien mettre dans la partie data, j’avais oublié de le tester dans le data…

You saved me !

Amicalement,

Philippe