Bonjour,

Je cherche à encoder une url correctement après être passer par un proxy.
Ma servlet s'authentifie et navigue sur le site.

Cette solution est exactement celle décrit ici :
[URL="http://edwardstx.net/wiki/Wiki.jsp?page=HttpProxyServlet"]


Voici le code utilisé pour obtenir l'adresse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 private String getProxyURL(HttpServletRequest httpServletRequest) {
		// Set the protocol to HTTP
		String stringProxyURL = "http://" + this.getProxyHostAndPort();
		// Check if we are proxying to a path other that the document root
		if(!this.getProxyPath().equalsIgnoreCase("")){
			stringProxyURL += this.getProxyPath();
		}
		// Handle the path given to the servlet
		stringProxyURL += httpServletRequest.getPathInfo();
		// Handle the query string
		if(httpServletRequest.getQueryString() != null) {
			stringProxyURL += "?" + httpServletRequest.getQueryString();
		}
		return stringProxyURL;
    }

Le seul moyen que j'ai trouvé pour obtenir une adresse correcte dans la plupart des cas est le replace(" ", "%20") ce qui n'est pas très propre et cela risque de poser des problèmes plus tard.

J'ai essayer de convertir httpServletRequest.getPathInfo() et (httpServletRequest.getQueryString() avec URLEncoder.encode ... et d'utiliser une URI uri = new URI(.....) sans succès car je dois pas convertir les caractères comme "=" "/" "&" "?" ...

je pense à parser l'url caractère par caractère et d'appliquer encode si besoin est.

Mais cette solution me parais débile. Y-a-t-il une solution plus simple ?

Merci d'avance