Pengenalan
Membuat rentetan pertanyaan berstruktur untuk URL adalah tugas yang kerap apabila berinteraksi dengan perkhidmatan web. Walaupun mudah dalam teori, pengendalian butiran seperti penggunaan "&" pemisah dan pengekodan URL yang betul boleh menjadi rumit.
Penyelesaian yang diselaraskan
daripada menggunakan kod yang panjang, berulang, kaedah yang lebih cekap dan boleh dibaca adalah untuk menggunakan kelas utiliti yang direka untuk tujuan khusus ini. Walaupun rangka kerja NET standard tidak mempunyai kelas terbina dalam, beberapa pilihan elegan wujud.
memanfaatkan httpvaluecollection
satu pendekatan menggunakan System.Web.HttpUtility.ParseQueryString(string.Empty)
untuk membuat wrable HttpValueCollection
, yang berfungsi sebagai NameValueCollection
. Tambahkan pasangan nilai kunci anda, dan kemudian hubungi ToString()
untuk menghasilkan rentetan pertanyaan:
<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 for .NET Core Applications
untuk. NET Core Projects, Microsoft.AspNetCore.WebUtilities.QueryHelpers
menyediakan penyelesaian yang lebih mudah:
<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>
Kaedah ini secara automatik mengendalikan pengekodan URL dan dengan lancar menambah rentetan pertanyaan ke url asas.
Memilih Pendekatan Terbaik
kedua -dua HttpValueCollection
dan QueryHelpers
menawarkan cara yang berkesan untuk membina rentetan pertanyaan. HttpValueCollection
sesuai untuk aplikasi ASP.NET tradisional, manakala QueryHelpers
adalah pilihan pilihan untuk aplikasi teras NET.
Atas ialah kandungan terperinci Bagaimanakah saya dapat membina rentetan pertanyaan yang elegan di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!