PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Appel d'un WebService REST dvp en Windev : pb de format de requête (JSON)
Appel d'un WebService REST dvp en Windev : pb de format de requête (JSON)
Iniciado por Laurent L, 12,dic. 2019 11:54 - 5 respuestas
Miembro registrado
4 mensajes
Publicado el 12,diciembre 2019 - 11:54
Bonjour
Je m'arrache les cheveux depuis 2 jours sur un problème. J'ai épluché la docs et les forums mais sans succès.

J'ai développé un webservice de type REST en Windev 24.
Ce webservice de type POST reçoit en paramètre une adresse mail et un mot de passe, appelle une procédure, et renvoie des informations.




Il est déployé dans le cloud PcSoft.
Lorsque je le teste avec Postman ou avec WDTestRest, j'ai le message suivant : "Le format du contenu de la requête ne correspond pas au format attendu 'application/json'"



J'en déduis que mes paramètres d'entrée (email et pwd) posent problème, mais je ne sais vraiment plus quoi tenter ...

Deux choses m'interpellent sur cet écran (mais qui n'ont peut-être pas de rapport avec mon problème initial) :
- je suis obligé d'indiquer 2 fois le nom de la ressource sinon il ne trouve pas le point d'entrée (http://monServeur.pcscloud.net/CheckUser/CheckUser/ )
- je ne vois nulle part où indiquer que je transmets du JSON

Désolé si ça peut paraître un peu trivial pour certains, mais c'est mon premier webservice en windev :)

Merci pour votre aide
Miembro registrado
1.002 mensajes
Publicado el 12,diciembre 2019 - 13:21
Bonjour,

Tel qu'est fait votre WS,

il faut faire "http://monServeur.pcscloud.net/CheckUser/CheckUser/Toto@gmail.com/pwd" en Methode Post

jordan
Miembro registrado
4 mensajes
Publicado el 12,diciembre 2019 - 15:10
Bonjour Jordan
Merci de votre réponse.
J'ai oublié de préciser que ce livrable et les suivants seront validés par notre client tel que je l'ai fait dans la copie d'écran.
Je précise aussi, mais je ne suis pas un spécialiste, que les webservices seront appelés en passant les paramètres dans le body.

Laurent
Miembro registrado
4 mensajes
Publicado el 12,diciembre 2019 - 17:50
Je viens de découvrir quelque chose, mais ça n'éclaircit pas les choses ... :(
J'ai fait un petit programme pour appeler mon webservice.

Quand j'écris dans l'URL http://egrall.pcscloud.net/CheckUser/CheckUser/, le webservice comprend que je lui passe 2 paramètres dont les valeurs sont "CheckUser".

Mais quand j'écris http://egrall.pcscloud.net/CheckUser/, Postman me répond qu'aucun point d'entrée n'a été trouvé. Pourtant CheckUser étant défini comme une ressource, je dois le mettre dans l'URL.

Je n'y comprends plus rien ...
Miembro registrado
1.002 mensajes
Publicado el 12,diciembre 2019 - 19:09
Le premier CheckUser, correspond au nom du dossier de deploiement de ton webservice, il est paramétrable lors du deploiement

Ton second Checkuser correspond au point d'entrée de ta procedure qui attend 2 parametres

Tu peux d'ailleurs le "voir" sur cette url : http://egrall.pcscloud.net/CheckUser/…
Mensaje modificado, 12,diciembre 2019 - 19:14
Miembro registrado
4 mensajes
Publicado el 13,diciembre 2019 - 10:50
Bonjour
Merci Jordan pour tes réponses : elles m'ont permis de me poser les bonnes questions.
Tout fonctionne parfaitement maintenant.
J'avais 2 problèmes :
- dans postman et WDTestRest je n'utilisais pas les bonnes options. Pour tester un webservice avec passage de paramètres dans le body, il faut choisir Body/Raw dans Postman et Contenu/Brut dans WDTestRest, puis saisir le json avec les noms et valeurs des paramètres
- pour les webservices avec paramètres dans le body, il ne faut pas indiquer de paramètre au niveau des points d'entrée, sinon il attend ... un paramètre à la suite du nom du point d'entrée. C'est pour ça que je me suis égaré sur les noms doublés dans l'URL.
Bonne journée
Laurent