Encodage des paramètres de requête URL en Java : comment faire correctement ?
Bonjour à tous ! Je suis débutant en Java et j'écris une petite application qui envoie des requêtes HTTP à une API externe. Je dois passer des paramètres dans la query string, mais j'ai rencontré un problème : certains paramètres contiennent des caractères spéciaux comme des espaces, du cyrillique, des signes &, =, etc.
Par exemple, l'un des paramètres est une requête de recherche : "Java & Spring Framework". Si je l'ajoute simplement à l'URL, j'obtiens une erreur car le caractère '&' est interprété comme un séparateur de paramètres.
J'ai essayé d'utiliser `URLEncoder.encode()`, mais les résultats semblent étranges. Par exemple, l'espace se transforme en '+', pas en '%20'. De plus, je ne suis pas sûr de devoir encoder toute l'URL ou seulement les valeurs des paramètres. Voici un exemple de mon code :
```java
String query = "Java & Spring Framework";
String url = "https://api.example.com/search?q=" + URLEncoder.encode(query, "UTF-8");
```
Au final, j'obtiens quelque chose comme `https://api.example.com/search?q=Java+%26+Spring+Framework`. Est-ce correct ?
No answers yet.
Connectez-vous pour laisser une réponse