C# 如何读取HttpWebResponse.Headers中的会话ID

C# 如何读取HttpWebResponse.Headers中的会话ID,c#,asp.net,session-cookies,C#,Asp.net,Session Cookies,我得到了这样的回应 Date: Wed, 17 Sep 2014 06:13:37 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: SESSION_ID=8ffc5f91d4d31130267b3a304acd235d; path=/; secure; HttpOnly Set

我得到了这样的回应

Date: Wed, 17 Sep 2014 06:13:37 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Set-Cookie: SESSION_ID=8ffc5f91d4d31130267b3a304acd235d; path=/; secure; HttpOnly Set-Cookie: JSESSIONID=8ffc5f91d4d31130267b3a304acd235d; path=/; secure; HttpOnly Set-Cookie: SESSION_KEY=; path=/; secure Expires: Tue, 01 Jan 1980 00:00:00 GMT Pragma: no-cache Cache-control: no-cache P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CURa OUR NOR STA" Content-Encoding: gzip 有人知道在
设置Cookie
中获取会话ID的简单方法吗。 请帮帮我

请看一下的属性

(返回一个,但如果基础请求是HTTP,则运行时类型为
HttpWebResponse
,您可以强制转换结果。)

Cookies
对象是按名称或数字索引的对象集合

大概是

((HttpWebResponse)myResponse).Cookies["SESSION_ID"].Value

应该这样做。

为什么不使用
cookie集合
,类似以下内容:

foreach (Cookie cookie in pl_wResData.Cookies)
{
   if (cookie.Name != "SESSION_ID")
      continue;
   strSID = cookie.Value;
}
我解决了我的问题。。。。 只需在响应请求数据之前创建CookieCentainer。。。。 示例代码如下所示

pl_wReqData.CookieContainer = new CookieContainer();
pl_wResData = (HttpWebRespons)pl_wReqData.GetResponse();

if(pl_wResData.StatusCode.Equals(HttpStatusCode.OK))
{
    strSID = pl_wResData.Cookies["SESSION_ID"].Value;
}

谢谢你的回答,但不幸的是,我已经尝试过了,但没有成功。。。。。。。当我这样尝试时,我得到了“对象引用未设置为对象的实例”。此异常错误消息…@HojinKim在这种情况下:哪个对象未设置?你看过调试器中的
Cookies
集合了吗?(很可能你没有得到你认为你得到的饼干。)嗯。。。。我选中了Cookie,在这种情况下,任何Cookie都不会设置在此响应头中。我只是请求第三方网站,并得到这个响应标题。因此,在这个标题中获取会话ID太复杂了……谢谢你的回答,但不幸的是,我已经尝试过了,它确实有效。SESSION\u ID是Set Cookie的值,因此我可以使用cookiecollection获取它……您好,您解决了这个问题吗?
pl_wReqData.CookieContainer = new CookieContainer();
pl_wResData = (HttpWebRespons)pl_wReqData.GetResponse();

if(pl_wResData.StatusCode.Equals(HttpStatusCode.OK))
{
    strSID = pl_wResData.Cookies["SESSION_ID"].Value;
}