HttpWebRequest読み取りサイトにCookieをマウントする一般的な方法
3191 ワード
Asp.Netバージョン
HttpWebRequest採集時追加:httpWebRequest.CookieContainer = new CookieContainer();リモートでクッキーをマウントできますが、マウントしたクッキーをどのように読み取るのでしょうか.
次の方法で悩みを解消します.
パス方法:
次の操作を行います.
HttpWebRequest採集時追加:httpWebRequest.CookieContainer = new CookieContainer();リモートでクッキーをマウントできますが、マウントしたクッキーをどのように読み取るのでしょうか.
次の方法で悩みを解消します.
パス方法:
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
");
}
}
return lstCookies;
}
次の操作を行います.
List<Cookie> _cookieList = GetAllCookies(req.CookieContainer);
string _cookieValue = _cookieList[0].ToString();