PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Erreur 400 - Bad Request avec Service REST
Erreur 400 - Bad Request avec Service REST
Débuté par Jean Turcotte, 16 oct. 2020 22:16 - 4 réponses
Membre enregistré
1 110 messages
Popularité : +8 (8 votes)
Posté le 16 octobre 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
Membre enregistré
1 110 messages
Popularité : +8 (8 votes)
Posté le 17 octobre 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
Posté le 17 mars 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.
Membre enregistré
1 110 messages
Popularité : +8 (8 votes)
Posté le 17 mars 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
Posté le 17 mars 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)