【发布时间】:2010-12-19 03:10:35
【问题描述】:
我以前使用 CookieContainer 与 HttpWebRequest 和 HttpWebResponse 会话,但现在,我想将它与 WebClient 一起使用。据我了解,没有像 HttpWebRequests (request.CookieContainer) 那样的内置方法。 如何在 CookieContainer 中从 WebClient 收集 cookie?
我googled为此找到了the following sample:
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;
}
}
这是最好的方法吗?
【问题讨论】:
-
从我的角度来看,
m_container永远不会设置!?不是一直都是空的吗? -
我相信HttpWebRequest类根据需要使用其内部字段CookieContainer修改了m_container类。
-
这就是你所需要的!响应中的 cookie 将自动添加到容器中。
标签: c# cookies httpwebrequest webclient cookiecontainer