L'analyse des chaînes URI dans leurs éléments constitutifs est une tâche courante dans le développement Web. Pour accomplir cette tâche, Java fournit plusieurs fonctionnalités intégrées et bibliothèques externes. Cet article se concentre sur une solution basée sur Java pour analyser les chaînes URI sans utiliser de dépendances externes.
La partie requête d'un URI contient une série de paires nom-valeur séparées par le '&' personnage. Pour analyser ces paramètres dans une carte, vous pouvez utiliser la méthode suivante :
public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException { Map<String, String> query_pairs = new LinkedHashMap<>(); String query = url.getQuery(); String[] pairs = query.split("&"); for (String pair : pairs) { int idx = pair.indexOf("="); query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); } return query_pairs; }
En utilisant l'URL donnée comme exemple :
https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback
Le La méthode splitQuery renverra la carte suivante :
{client_id=SS, response_type=code, scope=N_FULL, access_type=offline, redirect_uri=http://localhost/Callback}
La méthode comprend Décodage d'URL pour gérer les caractères spéciaux présents dans les valeurs des paramètres.
Une version mise à jour de la méthode a été fournie pour gérer les scénarios dans lesquels plusieurs paramètres ont la même clé . Cette version utilise un Map
Une implémentation Java 8 de la méthode est également disponible, qui exploite les expressions et les flux lambda pour une solution concise et efficace.
En utilisant la méthode splitQuery, vous pouvez facilement analyser les chaînes de requête URI dans leurs paires nom-valeur constitutives sans en s'appuyant sur des bibliothèques externes. Cette fonctionnalité est essentielle pour diverses tâches de développement Web, telles que l'extraction des entrées utilisateur ou la récupération de paramètres à partir de points de terminaison RESTful.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!