我正在使用GeckoWebBrowser控件来导航URL。 加载该页面时,它实际上应该有cookie。 但是如果我试图获取cookie,即使页面已加载,我也会得到一个空白文本。
GeckoWebBrowser m_Browser = ...
// ...导航后。 string sCookie = m_Browser.Document.Cookie.ToString();
有没有其他方法可以从GeckoWebBrowser获取Cookie? 请帮我。 感谢
答案 0 :(得分:3)
经验证可与GeckoFX v29.0一起使用。
var uri = new Uri(txtURL.Text);
//often cookies are stored on domain level, so ".google.com", not "www.google.com" (leading dot is important)
string host = uri.Host.Replace("www", "");
var cookies = CookieManager.GetCookiesFromHost(host);
string cookiesText = "";
while (cookies.MoveNext())
{
var c = cookies.Current;
cookiesText += c.Name + "=" + c.Value + ";";
}
此外,Browser.Document.Cookie似乎更可靠,但我还没有对它进行过广泛的测试。
答案 1 :(得分:0)
我发现了此问题的原因,因为geckowebbrowser的所有元素都正在加载,因此您立即设置了cookie,因此geckowebbrowser没有足够的时间进行授权。 我的解决方案是制作一个按钮。 在onload winform上,您可以浏览所需的URL,然后单击按钮,然后在事件按钮后面为URL设置授权的cookie。它为我工作。 :)