我正在使用HttpWebRequest和HttpWebResponse,后者在我的代码中命名为response22,所以这里是我代码的片段:
HttpWebResponse response22 = request22.GetResponse() as HttpWebResponse;
CookieCollection cookiezzz = new CookieCollection();
cookiezzz.Add(response22.Cookies);
foreach (System.Net.Cookie cookie in cookiezzz)
{
MessageBox.Show(cookie.Name);
}
奇怪的是,Fiddler在回复中显示了5个cookie,但是当我遍历cookie时,我只得到4个。
另外,我的请求设置为: equest22.AllowAutoRedirect = false;
目标框架是.Net 4.5,使用WinForms
使用CookieContaner完全没有帮助,因为它“选择”了这些cookie中的2个,但我现在不想担心,只想弄清楚如何获取所有五个cookie。
答案 0 :(得分:1)
您必须向请求提供cookie容器,而不是尝试从响应中检索它们。这将迫使容器和响应cookie被填充:
var cookiezzz = new CookieContainer();
request22.CookieContainer = cookiezzz;
HttpWebResponse response22 = request22.GetResponse() as HttpWebResponse;
foreach (System.Net.Cookie cookie in cookiezzz)
{
MessageBox.Show(cookie.Name);
}