PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → Erreur 400 - Bad Request avec Service REST
Erreur 400 - Bad Request avec Service REST
Iniciado por Jean Turcotte, 16,oct. 2020 22:16 - 4 respuestas
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 16,octubre 2020 - 22:16
Bonjour, J'ai créé un WEBService REST et tente d'y accéder avec la méthode GET.

Je crypte toutes les données d'envoie et les convertis en HEXA pour que ce soit plus simple. Le soucis, c'est que lorsque la taille de mon URL dépasse 313 octets, j'ai le message d'erreur suivant du serveur;
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01EN""http:www.w3.orgTRhtml4strict.dtd">
<HTML>
<HEAD>
<TITLE>
Bad Request
</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">

</HEAD>
<BODY>
<h2>
Bad Request - Invalid URL
</h2>
<hr>
<p>
HTTP Error 400. The request URL is invalid.
</p>

</BODY>

</HTML>

si la taille est inférieure à 313, ça fonctionne très bien,

Des idées?
Merci !

--
Jean Turcotte
WX 25
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 17,octubre 2020 - 15:36
Après avoir passé 2 jours à déboguer mon problème, j'ai peut-être trouvé la solution, sans toutefois comprendre pourquoi ça fonctionne.

Mon appli mobile ainsi que mon WebService étaient configurées en UNICODE. J'ai donc modifié les 2 en ANSI et ça fonctionne maintenant adéquatement.

J'aimerais bien comprendre pourquoi?
Merci!

--
Jean Turcotte
WX 25
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Publicado el 17,marzo 2021 - 17:28
Bonjour.

Je suis dans la même situation : webservice REST avec erreur 400 'The request URL is invalid'
dès que mon URL dépasse une certaine taille (...)

J'ai essayé avec les chaînes de caractères ANSI et chaînes UNICODE mais sans succès.

Quelqu'un d'autre a-t-il été confronté ce type de problème ?
Quelle(s) solution(s) envisager ?

D'avance merci.
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 17,marzo 2021 - 19:15
Moi j'ai jeté l'éponge avec les WS Rest et suis passer en Webservice SOAP, beaucoup plus facile à gérer et à comprendre, du moins dans mon cas.

--
Jean Turcotte
WX 26
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Publicado el 17,marzo 2021 - 20:18
Il y a effectivement une limite de taille pour le mode get (mode par défaut)...

Dans la question d'origine, le fait de passer d'unicode à ansi a divisé la taille par deux, et ca a résolu le problème.

MAIS, la bonne méthode, c'est de passer du mode GET (défaut) au mode POST qui lui n'est pas limité en taille. Le mode get comme son nom l'indique a été fait au départ pour DEMANDER des données au serveur, donc avec une question supposée courte), le mode post a été prévu pour ENVOYER des données au serveur, donc sans limite de taille.

il y a donc juste de petites modifs de syntaxe à gérer pour changer de mode (voir l'aide)