Maison >Java >javaDidacticiel >Comment analyser les chaînes de requête URI en paires nom-valeur en Java sans bibliothèques externes ?

Comment analyser les chaînes de requête URI en paires nom-valeur en Java sans bibliothèques externes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 21:34:33329parcourir

How to Parse URI Query Strings into Name-Value Pairs in Java Without External Libraries?

Analyse des chaînes URI dans des collections nom-valeur

Introduction

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.

Parsing Query Parameters

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;
}

Exemple d'utilisation

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}

Considérations sur l'encodage

La méthode comprend Décodage d'URL pour gérer les caractères spéciaux présents dans les valeurs des paramètres.

Gestion de plusieurs paramètres avec la même clé

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> pour suivre toutes les valeurs d'une clé donnée.

Version Java 8

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.

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn