Analyser la Chaîne de Requête avec HTTPclient pour extraire nameValuePairs
Est là Apache utilitaire qui prend de la Chaîne de Requête et d'encodage et de retour de la Carte de clé,valeur de[] url décodé?
Êtes-vous d'avoir une sorte de problème d'encodage avec les valeurs récupérées via HttpServletRequest de la méthode getParameter?
peut-être qu'il n'est pas sur un environnement de servlet.
tomcat c'est dans les tags.
peut-être qu'il n'est pas sur un environnement de servlet.
tomcat c'est dans les tags.
OriginalL'auteur Muhammad Hewedy | 2010-06-02
Vous devez vous connecter pour publier un commentaire.
Il est obsolète, mais vous pouvez utiliser HttpUtils.parseQueryString.
Il mappe les noms de paramètres à des valeurs. Si le paramètre apparaît plus d'une fois, la valeur est un tableau.
EDIT: La méthode ci-dessus est obsolète car elle ne permet pas de spécifier le codage des caractères.
La HttpClient projet apache a les classes dont vous avez besoin pour atteindre cet objectif.
Utilisation URIUtil.décoder(données String, String encoding) pour décoder la chaîne de requête.
Puis ParameterParser.parse(String query, char séparateur) pour obtenir une liste de NameValuePairs. Vous pouvez ensuite les mettre en commun ses Collections MultiMap, incrusté par nom de paramètre. (Vous pouvez utiliser un hachage de la carte, mais qui comporte plus de code pour gérer plusieurs valeurs par clé).
oui, c'est ce que je voulais écrire! 🙂
Mais, je n'ai pas mon application dépendent de tomcat libs, Est-il exposé ailleurs?
Ma suggestion ne pas utiliser tomcat libs. Il utilise HttpClient et les Communes des Collections, à la fois apache bibliothèques.
Le 1er lien est également obsolète maintenant.
OriginalL'auteur mdma
Si vous utilisez un 4.x version de HttpClient, vous souhaitez utiliser
URLEncodedUtils.parse()
. Il faut un URI (ou string + charset) et retourne une Liste de NameValuePairs.OriginalL'auteur Joseph Jaquinta