我将这个问题与截图重新发布,可能会让我的问题更容易理解。
我有一个填充在HttpWebRequest上的CookieContainer。我正在尝试迭代这些值,然后用下面的代码行接近:
var getvalue = myWebRequest.CookieContainer.GetCookies(new Uri("https://mydummy.domain.com"));
但是,在cookie集合中列出的4个潜在值中,它总是返回最后一个条目。
有没有人知道我怎么能进入清单,所以我重复一遍并选择我追求的价值?
在最后一张图片中,我在可能的4个条目中的第2个位置有一个条目(在数组位置1处显示)。这就是我想要推出的值JSESSIONID。
答案 0 :(得分:0)
最终发现这篇文章的一个例子完全符合我的目的:
How can I get all Cookies of a CookieContainer?
示例代码:
public static IEnumerable<Cookie> GetAllCookies(this CookieContainer c)
{
Hashtable k = (Hashtable)c.GetType().GetField("m_domainTable", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(c);
foreach (DictionaryEntry element in k)
{
SortedList l = (SortedList)element.Value.GetType().GetField("m_list", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(element.Value);
foreach (var e in l)
{
var cl = (CookieCollection)((DictionaryEntry)e).Value;
foreach (Cookie fc in cl)
{
yield return fc;
}
}
}
}