PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2025 → Disfonctionnement WebService API
Disfonctionnement WebService API
Débuté par Jean-Michel, 16 nov. 2023 08:20 - 3 réponses
Membre enregistré
856 messages
Posté le 16 novembre 2023 - 08:20
En entrée, j’ai 3 parametres.
PARAM1, PARAM2 et PARAM3
J’appelle mon API comme ceci dans ma ligne de commande du mode test :
http://10.1.2.7/WEB_SERVICE…
Mon code d’initilisation :
cparam1, cparam2 est une chaîne
cparam1 = PageParamètre("PARAM1")
cparam2 = PageParamètre("PARAM2")
cparam3 = PageParamètre("PARAM3")

Je mets un point d’arret et je constate :
cparam1 : « »
cparam2 : COMMENT
cparam3 : LFH

Le param1 est oublie !

Je modifie mon appel :
http://10.1.2.7/WEB_SERVICE…

Mon code
Cparam0, cparam1, cparam2 est une chaîne
Cparam0 = PageParamètre("PARAM0")
cparam1 = PageParamètre("PARAM1")
cparam2 = PageParamètre("PARAM2")
cparam3 = PageParamètre("PARAM3")

Resultat
Cparam0 : « »
Cparam1 : GET
cparam2 : COMMENT
cparam3 : LFH

Ce dernier test prouve qu’il zappe le 1er parametre !

Une idee svp ??
Merci.

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Membre enregistré
487 messages
Posté le 16 novembre 2023 - 12:05
Bonjour,

Avez-vous tenté de faire une Trace de la variable d'environnement REQUEST_URI ? Elle devrait contenir l'ensemble de l'URL appelée ("WEB_SERVICE?PARAM1=GET&PARAM2=COMMENT&PARAM3=LFH")

Trace(SysEnvironnement("REQUEST_URI"))


Si le paramètre n'apparait pas dans cettre trace, alors WebDev n'est pas en cause. Il pourrait y avoir quelque part une règle de réécriture qui supprimerait ce premier paramètre.
Membre enregistré
856 messages
Posté le 20 novembre 2023 - 03:39
bchanudet bonjour,
Merci d'avoir repondu.
J'ai lance le trace et rien n'apparait dans la fenetre.

Par contre, j'ai modifie mon url :
DE :
http: //x.x.x.x/WEB_SERVICE?PARAM1=GET&PARAM2=COMMENT&PARAM3=TCR"
EN :
http: //x.x.x.x/WEB_SERVICE?&PARAM1=GET&PARAM2=COMMENT&PARAM3=TCR"

J'ai rajoute le "&" juste devant le 1er parametre et cela fonctionne.
Je ne comprends pas car le "&" n'est pas obligatoire devant le 1er parametre ????

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev - Windev Mobile

Bangkok / Pattaya
Message modifié, 20 novembre 2023 - 03:41
Membre enregistré
487 messages
Posté le 21 novembre 2023 - 18:19
Bonjour,

Une Trace dans un Webservice REST n'apparaît "nulle part", si besoin il faut rediriger les traces vers un fichier avec un TraceDébut().

Il y a donc vraisemblablement un truc qui se passe au milieu entre l'envoi de la requête et la réception par WebDev (en général donc le serveur web, mais ça peut être autre chose en fonction des configurations, comme un reverse proxy, etc). Car comme vous l'indiquez le "&" n'est pas nécessaire après un ?