Java EE a ServletRequest.getParameterValues()
.
Sur les plateformes non-EE, [URL.getQuery()
](http://download.oracle.com/javase/1.4.2/docs/api/java/net/URL.html#getQuery()) renvoie simplement une chaîne de caractères.
Quelle est la façon normale de parser correctement la chaîne de requête dans une URL lorsque vous n'êtes pas sur Java EE?
Il est populaire dans les réponses d'essayer de créer votre propre analyseur. Il s'agit d'un projet de micro-codage très intéressant et passionnant, mais je ne peux pas dire que c'est une bonne idée.
Les extraits de code ci-dessous sont généralement défectueux ou cassés. Les casser est un exercice intéressant pour le lecteur. Et pour les hackers qui attaquent les sites web qui les utilisent.
L'analyse des chaînes de requête est un problème bien défini mais lire la spécification et comprendre les nuances n'est pas trivial. Il est bien mieux de laisser un développeur de bibliothèques de plateforme faire le travail difficile, et les corrections, pour vous!
0 votes
Pouvez-vous poster un exemple d'URL, ce que vous obtenez de
getQuery()
, et ce que vous voulez obtenir en sortie ?1 votes
Voulez-vous faire cela à partir d'un servlet ou d'une page JSP? J'ai besoin de quelques éclaircissements avant de répondre.
0 votes
Je suis en train d'essayer de le faire sur Android, mais toutes les réponses sur toutes les plates-formes seraient des réponses utiles qui pourraient donner des indices (également à d'autres personnes qui pourraient rencontrer cette question), alors ne vous retenez pas !
1 votes
Avez-vous également besoin de parser les paramètres POST?
2 votes
Même si vous êtes sur J2EE (ou sur SE avec des packages EE sélectionnés ajoutés via OSGi, comme moi), cette question pourrait avoir du sens. Dans mon cas, les chaînes de requête / corps POST encodés en URL sont traitées par une partie du système qui est intentionnellement agnostique par rapport à des choses comme
ServletRequest
.0 votes
@Will Je ne sais pas si tu as déjà résolu ta question mais cette lib cxf.apache.org/docs/jax-rs-advanced-features.html m'a aidé ! Jette un coup d'œil, supporte également FIQL
0 votes
Un autre scénario où vous avez besoin de cette fonctionnalité dans un code non-EE : l'analyse de la valeur de retour de PostQuery.execute() dans Apache Pivot