CookieContainer
でWebClient
を使用してクラスでCookieContainer
を使用する方法を示しています。
WebClient
クラスは直接をサポートしていません。 このガイドは2つのソリューションを提供します
WebClient
CookieContainer
ソリューション1:custom
WebClient
プロパティを備えたカスタム
メソッドをインターセプトし、WebClient
にキャストし、コンテナを割り当てることができます。
CookieContainer
GetWebRequest
HttpWebRequest
ソリューション2:手動ヘッダーインジェクションまたは、
<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>ヘッダーにCookieを直接追加します。 このアプローチは、複雑なCookieシナリオの管理にはそれほど堅牢ではありませんが、シングルクッキーでは簡単です。 単一のクッキーの場合:
複数のCookieの場合:
WebClient
を実際のCookieデータに置き換えることを忘れないでください。 Cookie間のセミコロンセパレーターに注意してください。 この方法は、セッションCookieを効果的に管理するのにそれほど理想的ではありません。
は、特に複数のリクエストと永続的なセッションを含むシナリオでのCookieのより良い管理を提供しますが、ヘッダー噴射方法は単純なケースのためのより迅速なソリューションを提供します。
以上がC#にWebClientを持つCookieContainerを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。