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:
-
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'objetHttpRequestMessage
pour accéder à l'URL complète de la requête. La propriétéQuery
de l'objetUri
contient la partie de l'URL qui suit le point d'interrogation, c'est-à-dire les paramètres de requête. -
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'objetUri
pour obtenir la chaîne de requête. Elle utilise ensuiteSplit
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.