我正在使用GeckoWebBrowser控件浏览URL。加载该页面时,它实际上应该具有cookie。但是,如果我尝试获取Cookie,即使页面已加载,也会得到空白文本。
[GeckoWebBrowser m_Browser = ...
// ...浏览后。字符串sCookie = m_Browser.Document.Cookie.ToString();
还有另一种从GeckoWebBrowser获取cookie的方法吗?请帮我。谢谢
已验证可与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 + ";";
}
也浏览器.Document.Cookie现在似乎更可靠,但我尚未对其进行广泛的测试。
我发现了此问题的原因,因为geckowebbrowser的所有元素都正在加载,因此您立即设置了cookie,因此geckowebbrowser没有足够的时间进行授权。我的解决方案是制作一个按钮。在onload winform上,您可以浏览所需的URL,然后单击按钮,然后在事件按钮后面为URL设置授权的cookie。它为我工作。 :)