如何在HttpWebResponse.Headers中读取SESSION_ID
本文关键字:读取 SESSION ID Headers HttpWebResponse | 更新日期: 2023-09-27 18:22:12
我得到了类似的响应标头
日期:2014年9月17日星期三06:13:37 GMT内容类型:text/html;charset=utf-8传输编码:分块连接:保持活动设置Cookie:SESSION_ID=8ffc5f91d4d31130267b3a304acd235d;路径=/;保护HttpOnly设置Cookie:JSESSIONID=8ffc5f91d4d31130267b3a304acd235d;路径=/;保护HttpOnly设置Cookie:SSESSION_KEY=;路径=/;保护有效期至:1980年1月1日星期二00:00:00 GMTPragma:没有缓存缓存控制:无缓存P3P:policyref="/w3c/P3P.xml",CP="NOI DSP COR NID CURa OUR NOR STA"内容编码:gzip
我想从Set Cookie中获取SESSION_ID
。这是我的示例代码:
pl_wResData = (HttpWebResponse)pl_wReqData.GetResponse();
pl_strResList = pl_wResData.Headers["Set-Cookie"].Replace(',', ';').Split(';');
for (int i = 0; i < pl_strResList.Length; i++)
{
pl_strValueList = pl_strResList[i].Split('=');
if (pl_strValueList[0].Equals("SESSION_ID"))
{
strSID = pl_strValueList[1].ToString();
break;
}
}
有人知道在Set-Cookie
中获取SESSION_ID
的简单方法吗。请帮帮我!!
看看HttpWebResponse
的Cookies
属性。
(WebRequest.GetResponse
返回一个WebResponse
,但如果底层请求是HTTP,则运行时类型是HttpWebResponse
,您可以强制转换结果。)
Cookies
对象是按名称或数字编制索引的Cookie
对象的集合。
所以类似的东西
((HttpWebResponse)myResponse).Cookies["SESSION_ID"].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;
}
为什么不使用cookie collection
,类似这样的东西:
foreach (Cookie cookie in pl_wResData.Cookies)
{
if (cookie.Name != "SESSION_ID")
continue;
strSID = cookie.Value;
}