以前は HttpWebRequest および HttpWebResponse セッションで CookieContainer を使用していましたが、今は WebClient で使用したいと考えています。私の知る限り、HttpWebRequests ( request.CookieContainer
) のような組み込みメソッドはありません。CookieContainer で WebClient から Cookie を収集するにはどうすればよいですか?
これをグーグルで検索したところ、次のサンプルが見つかりました。
public class CookieAwareWebClient : WebClient
{
private readonly CookieContainer m_container = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
HttpWebRequest webRequest = request as HttpWebRequest;
if (webRequest != null)
{
webRequest.CookieContainer = m_container;
}
return request;
}
}
これが最善の方法ですか?