CookieContainer
dengan WebClient
dalam C# Artikel ini menunjukkan cara menggunakan CookieContainer
dengan kelas WebClient
di C#, menangani kekurangan kaedah terbina dalam untuk tujuan ini.
Cabaran: Kelas tidak menyokong langsung WebClient
. Panduan ini menawarkan dua penyelesaian. CookieContainer
penyelesaian 1: custom kelas WebClient
. Ini membolehkan anda memintas kaedah WebClient
, dibuang ke CookieContainer
, dan menetapkan bekas anda. GetWebRequest
HttpWebRequest
public class CookieAwareWebClient : WebClient { private readonly CookieContainer _cookieContainer = new CookieContainer(); public CookieContainer CookieContainer { get { return _cookieContainer; } } protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request is HttpWebRequest httpWebRequest) { httpWebRequest.CookieContainer = _cookieContainer; } return request; } }
Sebagai alternatif, tambahkan kuki terus ke tajuk
. Pendekatan ini kurang teguh untuk menguruskan senario kuki kompleks tetapi lebih mudah untuk kuki tunggal.
WebClient
untuk satu kuki tunggal:
untuk pelbagai kuki:
webClient.Headers.Add(HttpRequestHeader.Cookie, "cookiename=cookievalue");
ingat untuk menggantikan
webClient.Headers.Add(HttpRequestHeader.Cookie, "cookiename1=cookievalue1; cookiename2=cookievalue2");
"cookiename1=cookievalue1; cookiename2=cookievalue2"
Pilih penyelesaian yang paling sesuai dengan keperluan anda. Custom
Atas ialah kandungan terperinci Bagaimana saya boleh menggunakan cookiecontainer dengan webclient di c#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!