我以前曾将 CookieContainer 与 HttpWebRequest 和 HttpWebResponse 会话一起使用,但现在,我想将其与 WebClient 一起使用。据我了解,没有像 HttpWebRequests 那样的内置方法(request.CookieContainer
). 如何从 CookieContainer 中的 WebClient 收集 cookie?
I googled为此并发现以下示例:
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");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)