Kaedah pembinaan rentetan pertanyaan untuk permintaan System.Net.HttpClient GET
Soalan:
System.Net.HttpClient tidak mempunyai API untuk terus menambah parameter permintaan GET. Adakah terdapat cara yang lebih mudah untuk membina rentetan pertanyaan tanpa membuat koleksi nilai nama, pengekodan URL dan penyatuan secara manual?
Jawapan:
Ya. Bina rentetan pertanyaan dengan mudah tanpa usaha manual:
<code class="language-csharp">// 解析空查询字符串 var query = HttpUtility.ParseQueryString(string.Empty); // 添加参数 query["foo"] = "bar&-baz"; query["bar"] = "bazinga"; // 将查询转换为字符串 string queryString = query.ToString();</code>
Ini akan menjana rentetan pertanyaan berikut:
<code>foo=bar%3c%3e%26-baz&bar=bazinga</code>
Sebagai alternatif, menggunakan kelas UriBuilder menyediakan penyelesaian yang lebih komprehensif:
<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>
Kaedah ini menjana URL berikut:
<code>http://example.com/?foo=bar%3c%3e%26-baz&bar=bazinga</code>
Anda boleh menyepadukan URL ini dengan lancar ke dalam kaedah GetAsync System.Net.HttpClient untuk melaksanakan permintaan GET dengan parameter pertanyaan yang diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membina Rentetan Pertanyaan dengan Mudah untuk Permintaan System.Net.HttpClient GET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!