Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh menggunakan cookiecontainer dengan webclient di c#?
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
<code class="language-csharp">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; } }</code>Penyelesaian 2: Suntikan Header Manual
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:
<code class="language-csharp">webClient.Headers.Add(HttpRequestHeader.Cookie, "cookiename=cookievalue");</code>
ingat untuk menggantikan
<code class="language-csharp">webClient.Headers.Add(HttpRequestHeader.Cookie, "cookiename1=cookievalue1; cookiename2=cookievalue2");</code>dengan data cookie sebenar anda. Perhatikan pemisah titik koma antara kuki. Kaedah ini kurang sesuai untuk menguruskan kuki sesi dengan berkesan.
"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!