我怎样才能得到“set - cookie”设置的cookie呢?在HttpWebRequest中

本文关键字:cookie 设置 HttpWebRequest set | 更新日期: 2023-09-27 18:04:50

我希望下面的代码会产生一个非零值:

var webRequest = (HttpWebRequest) WebRequest.Create(loginUrl);
var webResponse = (HttpWebResponse)webRequest.GetResponse();
Console.WriteLine(webResponse.Cookies.Count);

但是在webRespone.Cookies中似乎没有出现cookie。我确信cookie在那里,因为我正在用Fiddler嗅探数据。这是我得到的响应:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
Set-Cookie: __Abc=Def; path=/; HttpOnly
PS-ResponseTime: 00:00:00.0624001
PS-Build: 2013-03-19-11-36-59
PS-Node: 02
Date: Tue, 19 Mar 2013 21:14:51 GMT
Content-Length: 57872

这和饼干是HttpOnly有关系吗?

编辑

似乎我可以通过HttpWebRequestCookieContainer得到它们,如果我打算继续进行一系列请求/响应,这当然是有用的。但是为什么我不能通过HttpWebResponse.Cookies字段访问它们呢?

谢谢

我怎样才能得到“set - cookie”设置的cookie呢?在HttpWebRequest中

您是对的,您需要将请求交给CookieContainer的一个实例,然后引用该实例来查看cookie。基本上,HttpWebResponse不直接公开响应上标记为HttpOnly的cookie。