我以前曾将 CookieContainer 与 HttpWebRequest 和 HttpWebResponse session 一起使用,但现在,我想将它与 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;
}
}
这是最好的方法吗?
最佳答案
WebClient wb = new WebClient();
wb.Headers.Add(HttpRequestHeader.Cookie, "somecookie");
来自评论
如何格式化 cookie 的名称和值来代替“somecookie”?
wb.Headers.Add(HttpRequestHeader.Cookie, "cookiename=cookievalue");
对于多个 cookie:
wb.Headers.Add(HttpRequestHeader.Cookie,
"cookiename1=cookievalue1;" +
"cookiename2=cookievalue2");
关于c# - 将 CookieContainer 与 WebClient 类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777221/