PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → RestEnvoie, httpRequete... en PUT
RestEnvoie, httpRequete... en PUT
Iniciado por bruno.gengembre, 26,nov. 2018 17:22 - 11 respuestas
Publicado el 26,noviembre 2018 - 17:22
Bonsoir,

J'utilise une API avec une méthode Put et je n'arrive pas à envoyer des paramètres dans le body.

J'ai une httpRequête ou je passe :

Une URL
Une Entête d'autorisation (Autorization:Bearer hbcdhbhchdbhcbhdhcbdhchbdhbchbdhbchbdbchb)
Un ContentType (application/json)
Une méthode (httpPut)

Et je dois passer un JSON dans le body mais tout ce que j'essaie ne fonctionne pas, je ne dois pas passer les paramètres

En curl il faudrait que je fasse :

curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Bearer bdhvhsjcvzvcjhzvcjvdzjcjdchbjdcbjdbcjbdcjbdjcbjdhbc' -d '{ "parametre1":"monparametre1", "parametre2":true, "parametre3":"monparametre3" }'

Comment le faire en windev ?

Merci pour vos lumières

Bruno
Publicado el 26,noviembre 2018 - 17:38
Petite précision, je passe mes paramètres dans le Contenu mais cela ne fonctionne pas
Miembro registrado
1.002 mensajes
Publicado el 26,noviembre 2018 - 19:15
Bonjour,

Montre nous ton code et pas une supposition de code,

Jordan
Publicado el 27,noviembre 2018 - 11:19
Bonjour,

MaReq est un restRequête
LaRéponse est un restRéponse
Vimportation est un Variant

Vimportation.equipmentId={"TABLE_Importation.Reference"}[I]
Vimportation.isPrimary=True
Vimportation.equipmentTel=Remplace({"TABLE_Importation.Referent_Phone1"}[I]," ","")

MaReq.URL=MonServeur+"/public/api/serviceag/"+IDServiceAg+"/requests/"+IDRequest+"/stockitem/"+IDStockItem+"/configue"
MaReq..Entête["Autorization"]="Bearer "+AccessToken
MaReq.ContentType="application/json"
MaReq.Méthode=httpPut
MaReq.Contenu=VariantVersJSON(Vimportation)
RESTEnvoie(MaReq)

Mon Contenu ne semble pas être lu...

J'ai essayé avec des httprequete, des restRequete... toujours le même problême.

Je mets l'URL dans mon swagger et je mets mon JSon et sa fonctionne dans le swagger.

Ce qui prouve que l'URL est bonne et le Json aussi mais pourquoi ça ne fonctionne pas....

Merci pour vos lumières.

Bonne journée

Bruno
Publicado el 27,noviembre 2018 - 12:05
Re bonjour,

Si je test ma requête HTTP dans Postman, elle fonctionne.

Cela ne vient pas de l'URL appelé, ni du Json que je tente d'envoyer par "Contenu".

Si quelqu'un avait une idée...
Miembro registrado
5 mensajes
Publicado el 27,noviembre 2018 - 14:00
Bonjour,
Je ne vois pas dans ton code URLToken et la fontion AuthIdentifie pour faire une authentification ??
https://doc.pcsoft.fr/?1000022219

--
Yours
Mensaje modificado, 27,noviembre 2018 - 14:00
Publicado el 27,noviembre 2018 - 14:06
En fait, avant je récupère un token avec une API et je passe mon token dans l'entête de mon appel de fonction.

Avant cette fonction en "PUT", j'ai 7 appels de fonctions en GET ou POST avec le même principe et tout fonctionne sauf cette requête en PUT.
Publicado el 27,noviembre 2018 - 14:16
Ce n'est pas une authentification en OAuth 2.0.
Miembro registrado
1.002 mensajes
Publicado el 27,noviembre 2018 - 14:32
Il te manque l'entete "Accept" dans ta declaration
Miembro registrado
5 mensajes
Publicado el 27,noviembre 2018 - 14:33
Pour moi aussi je crois avec le calendrier du google , je l'avais remplacé par httpPatch et ça marche

--
Yours
Publicado el 27,noviembre 2018 - 16:36
En ajoutant un Accept dans l'entête avec "application/json" je l'avais déjà essayé et ça ne fonctionne pas mieux mais en remplaçant :

MaReq.Contenu=VariantVersJSON(Vimportation)

et en essayant directement d'écrire le contenu de mon Json en dure avec des crochets ça fonctionne.

MaReq.Contenu=[
{ "equipmentId":"9999999910", "isPrimary":true, "equipmentTe":"0101010101" }
]

Il ne doit pas aimer les guillemets dans le contenu.

J'ai essayé des UrlEncode, des Encode... je sèche.

Merci d'avance pour le sauveur
Publicado el 27,noviembre 2018 - 17:36
Après énormément de temps à trouver pourquoi... il faut juste remplacer les " par un '

Une bonne fonction remplace pour mettre le Json dans le contenu

Et ça fonctionne.... la galère pour une si petite chose