.net Httpclient Get Query Parameters

5 min read Jun 04, 2024
.net Httpclient Get Query Parameters

Obtenir des paramètres de requête avec HttpClient en .NET

L'utilisation de HttpClient en .NET pour effectuer des requêtes HTTP est une pratique courante. Souvent, ces requêtes nécessitent des paramètres de requête pour filtrer ou personnaliser les données récupérées. Cet article explique comment obtenir des paramètres de requête à partir d'une requête HTTP à l'aide de HttpClient en .NET.

Comprendre les paramètres de requête

Les paramètres de requête sont des informations supplémentaires ajoutées à l'URL d'une requête HTTP pour spécifier des options ou des critères supplémentaires. Ils sont généralement séparés de l'URL principale par un point d'interrogation (?) et sont représentés sous la forme de paires clé-valeur, séparées par des ampersands (&). Par exemple, l'URL suivante inclut des paramètres de requête :

https://api.example.com/users?name=John&age=30

Dans cet exemple, name et age sont les clés des paramètres de requête, et John et 30 sont leurs valeurs respectives.

Récupérer des paramètres de requête avec HttpClient

Il n'existe pas de méthode intégrée dans HttpClient pour récupérer directement les paramètres de requête. Cependant, vous pouvez utiliser les méthodes suivantes pour obtenir les paramètres de requête:

  1. En utilisant la propriété RequestUri de HttpRequestMessage:

    using System.Net.Http;
    
    public async Task GetQueryParameters(HttpRequestMessage request)
    {
        var uri = request.RequestUri;
        if (uri.Query.Length > 0)
        {
            // Supprimer le point d'interrogation (?) du début de la chaîne de requête
            return uri.Query.Substring(1);
        }
        return "";
    }
    

    Cette méthode utilise la propriété RequestUri de l'objet HttpRequestMessage pour accéder à l'URL complète de la requête. La propriété Query de l'objet Uri contient la partie de l'URL qui suit le point d'interrogation, c'est-à-dire les paramètres de requête.

  2. En utilisant la propriété Query de l'objet Uri:

    using System.Net.Http;
    using System.Collections.Generic;
    using System.Linq;
    
    public async Task> GetQueryParameters(HttpRequestMessage request)
    {
        var uri = request.RequestUri;
        var queryParameters = new Dictionary();
    
        if (uri.Query.Length > 0)
        {
            // Supprimer le point d'interrogation (?) du début de la chaîne de requête
            var queryParams = uri.Query.Substring(1).Split('&');
    
            foreach (var param in queryParams)
            {
                // Séparer la clé et la valeur du paramètre
                var parts = param.Split('=');
                if (parts.Length == 2)
                {
                    queryParameters.Add(parts[0], parts[1]);
                }
            }
        }
    
        return queryParameters;
    }
    

    Cette méthode utilise la propriété Query de l'objet Uri pour obtenir la chaîne de requête. Elle utilise ensuite Split pour diviser la chaîne de requête en une liste de paires clé-valeur. Enfin, elle crée un dictionnaire pour stocker les paramètres de requête et leurs valeurs.

Conclusion

En utilisant les méthodes décrites ci-dessus, vous pouvez facilement obtenir les paramètres de requête d'une requête HTTP à l'aide de HttpClient en .NET. Cela vous permet de récupérer les informations nécessaires pour personnaliser votre logique métier et exécuter des actions basées sur les paramètres de requête fournis par l'utilisateur.

Featured Posts