Maison >Java >javaDidacticiel >Comment extraire des paires nom-valeur d'une chaîne de requête URI en Java ?

Comment extraire des paires nom-valeur d'une chaîne de requête URI en Java ?

DDD
DDDoriginal
2024-12-26 22:35:13910parcourir

How to Extract Name-Value Pairs from a URI Query String in Java?

Extraire les données intégrées des URI à l'aide de Java

L'analyse d'une chaîne URI dans ses paires nom-valeur correspondantes est une tâche courante dans de nombreux développements Web. scénarios. En Java, vous pouvez réaliser cette opération sans recourir à des bibliothèques externes en appliquant une approche simple.

Guide étape par étape :

  1. Divisez la chaîne de requête URI :
    À l'aide de la méthode URL.getQuery(), obtenez la partie chaîne de requête de l'URI. La chaîne de requête est la partie située après le point d'interrogation (?) et contient des paires clé-valeur séparées par le caractère esperluette (&).
  2. Paires clé-valeur séparées :
    Split la chaîne de requête en paires clé-valeur individuelles à l'aide de la méthode String.split("&").
  3. Analyser la valeur-clé Paires :
    Pour chaque paire clé-valeur, localisez le signe égal (=) pour séparer la clé de la valeur. Décodez à la fois la clé et la valeur à l'aide d'un encodage approprié, tel que URLDecoder.decode().
  4. Construisez une collection nom-valeur :
    Créez une structure de données cartographiques pour stocker la clé analysée. -paires de valeurs.

Échantillon Implémentation :

Le code Java suivant montre comment implémenter les étapes ci-dessus :

import java.net.URL;
import java.net.URLDecoder;
import java.util.LinkedHashMap;
import java.util.Map;

public class ParseUriQuery {

    public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException {
        Map<String, String> queryPairs = new LinkedHashMap<>();
        String query = url.getQuery();
        String[] pairs = query.split("&");
        for (String pair : pairs) {
            int idx = pair.indexOf("=");
            queryPairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
        }
        return queryPairs;
    }

}

Exemple d'utilisation :

Pour analyser le URI fourni dans votre question, vous pouvez utiliser le code suivant :

URL url = new URL("https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback");
Map<String, String> queryPairs = ParseUriQuery.splitQuery(url);

// Access parsed elements
String clientId = queryPairs.get("client_id"); // Returns "SS"

Cette approche offre un moyen pratique et polyvalent d'extraire informations intégrées dans les chaînes de requête URI en Java.

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