Introduction
La création de chaînes de requête bien structurées pour les URL est une tâche fréquente lors de l'interaction avec les services Web. Bien que simple en théorie, la gestion des détails comme l'utilisation correcte des "séparateurs» et du codage d'URL approprié peut être lourd.
Solutions rationalisées
plutôt que d'utiliser un code long et répétitif, une méthode plus efficace et lisible consiste à utiliser une classe de services publics conçue à cette fin spécifique. Alors que le framework .NET standard manque une telle classe intégrée, plusieurs options élégantes existent.
Tiration de HttpValueCollection
Une approche utilise System.Web.HttpUtility.ParseQueryString(string.Empty)
pour créer un HttpValueCollection
écrivable, qui fonctionne comme un NameValueCollection
. Ajoutez vos paires de valeurs clés, puis appelez ToString()
pour générer la chaîne de requête:
<code class="language-csharp">NameValueCollection queryString = System.Web.HttpUtility.ParseQueryString(string.Empty); queryString.Add("key1", "value1"); queryString.Add("key2", "value2"); return queryString.ToString(); // Returns "key1=value1&key2=value2" (URL-encoded)</code>
Queryhelpers pour .NET Core Applications
pour les projets de base .NET, Microsoft.AspNetCore.WebUtilities.QueryHelpers
fournit une solution plus simple:
<code class="language-csharp">const string url = "https://customer-information.azure-api.net/customers/search/taxnbr"; var param = new Dictionary<string, string>() { { "CIKey", "123456789" } }; var newUrl = new Uri(QueryHelpers.AddQueryString(url, param));</code>
Cette méthode gère automatiquement le codage de l'URL et ajoute de manière transparente la chaîne de requête à l'URL de base.
Sélection de la meilleure approche
à la fois HttpValueCollection
et QueryHelpers
offrent des moyens efficaces de construire des chaînes de requête. HttpValueCollection
convient aux applications ASP.NET traditionnelles, tandis que QueryHelpers
est le choix préféré pour les applications de base .NET.
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!