Menguruskan kuki dengan webclient C#
C# pemaju sering perlu mengendalikan kuki HTTP semasa membuat permintaan web. Manakala dan HttpWebRequest
menyokong langsung HttpWebResponse
, CookieContainer
tidak. Artikel ini membentangkan dua kaedah untuk menangani batasan ini. WebClient
Kaedah 1: WebClient Custom dengan Cookiecontainer
Penyelesaian yang paling mantap melibatkan mewujudkan kelas adat yang menggabungkan WebClient
. Ini membolehkan pengurusan kuki lancar. CookieContainer
<code class="language-csharp">public class CookieAwareWebClient : WebClient { private readonly CookieContainer _container = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request is HttpWebRequest webRequest) { webRequest.CookieContainer = _container; } return request; } }</code>
ini memintas dan mengubah permintaan, menambah CookieAwareWebClient
. CookieContainer
kaedah 2: menetapkan kuki secara manual dalam tajuk
Pendekatan yang lebih mudah, walaupun kurang fleksibel, adalah untuk mengurus kuki secara langsung melalui tajuk permintaan. Ini sesuai untuk senario yang lebih mudah. untuk satu kuki tunggal:
<code class="language-csharp">WebClient wb = new WebClient(); wb.Headers.Add(HttpRequestHeader.Cookie, "cookiename=cookievalue");</code>
<code class="language-csharp">wb.Headers.Add(HttpRequestHeader.Cookie, "cookiename1=cookievalue1; cookiename2=cookievalue2");</code>
umumnya lebih disukai untuk pengendalian yang lebih baik dan pengendalian ralat, terutamanya dengan senario cookie kompleks. WebClient
Atas ialah kandungan terperinci Bagaimana saya boleh menggunakan bekas cookie dengan webclient C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!