HttpWebResponse不会返回所有cookie

时间:2014-08-12 15:50:38

标签: c# cookies httpwebresponse

我正在使用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。

1 个答案:

答案 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);
}