【问题标题】:HttpWebResponse does not return all cookiesHttpWebResponse 不返回所有 cookie
【发布时间】:2014-10-05 18:49:37
【问题描述】:

我将 HttpWebRequest 与 HttpWebResponse 一起使用,后者在我的代码中命名为 response22,所以这是我的代码中的一个 sn-p:

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 时,我只得到了四个。

另外,我的请求设置为: equest22.AllowAutoRedirect = false;

目标框架是 .Net 4.5,使用 WinForms

使用 CookieContaner 根本没有帮助,因为它只“挑选”了其中 2 个 cookie,但我现在不想担心这个,只想弄清楚如何获取所有 5 个 cookie。

【问题讨论】:

标签: c# cookies httpwebresponse


【解决方案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);
}

【讨论】:

  • 这仍然没有回答关于丢失 cookie 的原始问题。我看到过类似的问题,我认为是因为 HttpWebRequest 没有获取 https cookie。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 2011-10-02
  • 2015-07-07
  • 2015-09-27
  • 1970-01-01
相关资源
最近更新 更多