Asp.net 版本
HttpWebRequest采集时添加:httpWebRequest.CookieContainer = new CookieContainer();就能远程挂载上cookie,那么怎样去读取挂载上的cookie呢?
下面方法为大家解除烦恼。
遍历方法:
public static List<Cookie> GetAllCookies(CookieContainer cc) {List<Cookie> lstCookies = new List<Cookie>();Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, cc, new object[] { });StringBuilder sb = new StringBuilder();foreach (object pathList in table.Values){SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, pathList, new object[] { });foreach (CookieCollection colCookies in lstCookieCol.Values)foreach (Cookie c in colCookies){lstCookies.Add(c);sb.AppendLine(c.Domain + ":" + c.Name + "____" + c.Value + "\r\n");}}return lstCookies; }
使用:
List<Cookie> _cookieList = GetAllCookies(req.CookieContainer); string _cookieValue = _cookieList[0].ToString();
本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/archive/2012/10/09/2716422.html,如需转载请自行联系原作者