Maison >développement back-end >C++ >Comment puis-je créer facilement des chaînes de requête pour les requêtes GET System.Net.HttpClient ?

Comment puis-je créer facilement des chaînes de requête pour les requêtes GET System.Net.HttpClient ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-09 09:41:42370parcourir

How Can I Easily Build Query Strings for System.Net.HttpClient GET Requests?

Méthode de construction de chaîne de requête pour la requête System.Net.HttpClient GET

Question :

System.Net.HttpClient ne dispose pas d'API pour ajouter directement les paramètres de requête GET. Existe-t-il un moyen plus simple de créer des chaînes de requête sans créer manuellement des collections nom-valeur, un codage d'URL et une concaténation ?

Réponse :

Oui. Créez facilement des chaînes de requête sans effort manuel :

<code class="language-csharp">// 解析空查询字符串
var query = HttpUtility.ParseQueryString(string.Empty);

// 添加参数
query["foo"] = "bar&-baz";
query["bar"] = "bazinga";

// 将查询转换为字符串
string queryString = query.ToString();</code>

Cela générera la chaîne de requête suivante :

<code>foo=bar%3c%3e%26-baz&bar=bazinga</code>

Alternativement, l'utilisation de la classe UriBuilder fournit une solution plus complète :

<code class="language-csharp">// 为目标URL创建一个UriBuilder
var builder = new UriBuilder("http://example.com");
builder.Port = -1;

// 解析查询字符串
var query = HttpUtility.ParseQueryString(builder.Query);

// 添加参数
query["foo"] = "bar&-baz";
query["bar"] = "bazinga";

// 更新UriBuilder的查询字符串
builder.Query = query.ToString();

// 获取完整的URL
string url = builder.ToString();</code>

Cette méthode génère l'URL suivante :

<code>http://example.com/?foo=bar%3c%3e%26-baz&bar=bazinga</code>

Vous pouvez intégrer de manière transparente cette URL dans la méthode GetAsync de System.Net.HttpClient pour effectuer une requête GET avec les paramètres de requête requis.

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