URISyntaxException - Comment traiter les url avec des %
Je suis assez nouveau à Java et suis tombé sur ce problème. J'ai essayé de chercher mais n'a jamais obtenu une réponse correcte.
J'ai une chaîne de caractères par exemple
String name = anything 10%-20% 04-03-07
Maintenant, j'ai besoin de construire une chaîne d'url avec ce nom de Chaîne comme ci-dessous.
http://something.com/test/anything 10%-20% 04-03-07
J'ai essayé de remplacer les espaces par %20 et maintenant, je suis la nouvelle url
http://something.com/test/anything%2010%-20%%2004-03-07
Lorsque j'utilise cette url et le feu dans firefox ça marche bien, mais lors du traitement en Java, il est apparemment jeter
Exception in thread "main" java.lang.IllegalArgumentException
at java.net.URI.create(Unknown Source)
at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69)
Caused by: java.net.URISyntaxException: Malformed escape pair at index 39 :
at java.net.URI$Parser.fail(Unknown Source)
at java.net.URI$Parser.scanEscape(Unknown Source)
at java.net.URI$Parser.scan(Unknown Source)
at java.net.URI$Parser.checkChars(Unknown Source)
at java.net.URI$Parser.parseHierarchical(Unknown Source)
at java.net.URI$Parser.parse(Unknown Source)
at java.net.URI.<init>(Unknown Source)
... 6 more
C'est le code de jeter erreur
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
OriginalL'auteur Vish | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
Coder aussi le signe de pourcentage avec
%25
.http://something.com/test/anything 10%-20% 04-03-07
serait de travailler avechttp://something.com/test/anything%2010%25-20%25%2004-03-07
.Vous devriez être en mesure d'utiliser par exemple URLEncoder.coder pour cela -, rappelez-vous simplement que vous avez besoin de la fonction urlencode le chemin de la partie, pas de quoi que ce soit avant que, donc, quelque chose comme
Remarque: URLEncoder code pour les espaces de
+
au lieu de%20
, mais il devrait fonctionner de la même manière, les deux sont ok.OriginalL'auteur eis
Vous pouvez utiliser java.net.URI de créer une uri de votre chaîne
OriginalL'auteur Guy