System.Net.HttpClient GET要求的查詢字串建構方法
問題:
System.Net.HttpClient 缺乏直接加入GET請求參數的API。有沒有更簡單的方法來建立查詢字串,而無需手動建立名稱-值集合、URL編碼和連接?
答案:
有的。無需手動操作即可輕鬆建立查詢字串:
<code class="language-csharp">// 解析空查询字符串 var query = HttpUtility.ParseQueryString(string.Empty); // 添加参数 query["foo"] = "bar&-baz"; query["bar"] = "bazinga"; // 将查询转换为字符串 string queryString = query.ToString();</code>
這將產生以下查詢字串:
<code>foo=bar%3c%3e%26-baz&bar=bazinga</code>
或者,利用UriBuilder類別提供了一個更全面的解決方案:
<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>
此方法產生以下網址:
<code>http://example.com/?foo=bar%3c%3e%26-baz&bar=bazinga</code>
您可以將此URL無縫整合到System.Net.HttpClient的GetAsync方法中,以使用所需的查詢參數執行GET請求。
以上是如何輕鬆建立 System.Net.HttpClient GET 請求的查詢字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!