39 votes

Une bonne bibliothèque pour manipuler des chaînes de requête d'URL en Java

J'ai besoin d'effectuer quelques manipulations d'URL très simples en Java. Comme obtenir la valeur d'un paramètre dans la requête, ou le mettre à jour, ... Je m'attendais à trouver une classe utilitaire simple pour cela dans le paquet commons-lang, mais non. Je sais que c'est un problème simple, mais s'il y a quelque chose de déjà écrit, pourquoi le faire à nouveau ? En connaissez-vous une ?

J'aimerais avoir au moins les capacités suivantes :

String myUrl = "http://www.example.com/test.html?toto=1&titi=2";

// get the value of a parameter
String parameterValue = UrlUtils.getParameterValue(myUrl, "toto");
Assert.equals(parameterValue, "1");

// update a parameter
String newUrl = UrlUtils.updateParameter(myUrl, "toto", 3);
parameterValue = UrlUtils.getParameterValue(myUrl, "toto");
Assert.equals(parameterValue, "3");

Idéalement, il devrait prendre en charge tous les problèmes liés à l'encodage et fonctionner avec java.net.Url ainsi qu'avec les chaînes de caractères.

Merci pour votre aide !

6voto

Vinko Vrsalovic Points 116138

Je pense que ce que vous voulez est appelé un parseur de chaîne de requête au lieu d'un manipulateur d'url et en voici un : http://ostermiller.org/utils/CGIParser.java.html

4voto

piepera Points 780

La bibliothèque httpcomponents d'Apache possède un décodeur d'URL : http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URLEncodedUtils.html

Httpcomponents est le successeur du client http de Commons.

3voto

youknowjack Points 11

Indeed a publié une bibliothèque Java efficace pour l'analyse syntaxique des chaînes de requête et des nombres :

http://engineering.indeed.com/blog/2014/02/efficient-query-string-parsing-util-urlparsing/

https://github.com/indeedeng/util/tree/master/urlparsing

(Avertissement : je suis directeur de l'ingénierie chez Indeed).

-2voto

matt b Points 73770

Jetez un coup d'œil à Client Http Commons . Je ne suis pas sûr qu'il existe des classes/méthodes simples de gestion des URLs.

(Il ne serait pas logique que ce type de fonctionnalité soit dans commons-lang de toute façon - puisque cela n'est pas vraiment lié au langage de Java lui-même).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X