|
| Inicio → WINDEV 2025 → format des espaces et des paramètres vides dans l'URI d'appel à un web service REST |
| format des espaces et des paramètres vides dans l'URI d'appel à un web service REST |
| Iniciado por Yvan, 14,jun. 2020 17:42 - 2 respuestas |
| |
| | | |
|
| |
Miembro registrado 214 mensajes |
|
| Publicado el 14,junio 2020 - 17:42 |
Bonjour,
Je développe conjointement un web service REST / JSON et une application pour IOS. L'application IOS consomme les méthodes de web service créées.
Tout va bien sauf lorsque je passe à mon webservice des chaines vides ou contenant des espaces, je reçois systématiquement une réponse de type 400- Bad Request, voir 500. OK je sais, une URL ne peut pas contenir de chaine vide, mais comment s'en sortir dans des cas comme celui ci-dessous :
Par exemple la méthode suivante : /API/user/login/{usercode}/{userpassword}/{terminalname}
Si je la consomme comme ceci : monurl/API/user/login/toto/superMDP/iphonedetoto , tout va bien
Par contre, les appels du genre : monurl/API/user/login/toto//iphonedetoto plante, donc toto doit avoir un mot de passe  Ou encore monurl/API/user/login/toto/superMDP/iphone de toto plante car il y a des espaces dans iphone de toto
J'ai bien tenté de remplacer les chaines vides par "+" ou "%20" ou même des caractères du genre "<EMPTY>" mais rien n'y change.
J'aurai pensé que la méthode RESTEnvoie encodait l'URL selon les conventions mais apparemment pas, et mettre manuellement les %20 etc ne semble pas être LA solution...
Je pense donc qu'il y a deux soucis : 1- comment utiliser un paramètre qui peut être optionnel (et donc des fois vide) 2- comment traiter les espaces
Petites idées??? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 121 mensajes |
|
| Publicado el 14,junio 2020 - 20:17 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 214 mensajes |
|
| Publicado el 14,junio 2020 - 22:22 |
Merci Thibault,
En effet, l'utilisation de URLEncode() résout partiellement mon soucis. Les espaces sont remplacés par %20 (ce qui ne fonctionnait pas quand je le faisait manuellement sur la page de test mais bon ...), etc --> Super
Reste le problème du paramètre que je ne renseigne pas : Par exemple la méthode suivante : /API/user/login/{usercode}/{userpassword}/{terminalname}
Si je la consomme comme ceci : monurl/API/user/login/toto/superMDP/iphonedetoto , tout va bien
Par contre, les appels du genre : monurl/API/user/login/toto//iphonedetoto plante, donc toto doit avoir un mot de passe --> je reçois une réponse 404- Not Found et je n'arrive donc pas au point d'entrée de ma méthode
Donc la dernière question qui m'occupe (pour le moment ) est de savoir s'il est possible de donner la valeur vide à un paramètre dans l'URI ?
Merci! |
| |
| |
| | | |
|
| | | | |
| | |
|