2013-12-10 50 views
3

我正在使用GeckoWebBrowser控件導航URL。 實際上,當頁面加載時應該有cookie。 但是,如果我試圖獲取cookie,即使加載頁面,我也會得到一個空白文本。C#如何從GeckoWebBrowser控件獲取Cookie

GeckoWebBrowser m_Browser = ...

// ...後導航。 string sCookie = m_Browser.Document.Cookie.ToString();

是否有另一種方法從GeckoWebBrowser獲取Cookie? 請幫幫我。 謝謝

+0

您可以在加載頁面後使用m_Browser.Document.Cookie獲取cookie值。你能告訴我你在瀏覽哪個網站嗎?你不需要在這裏使用Tostring(),因爲'm_Browser.Document.Cookie'本身返回字符串值。 – yasmuru

+0

本網站:https://trading.binaryinternational.com/#Trade。即使我加載了這個網站,cookie是仍然空白。我正在使用的壁虎版本是21.0 – user3060369

+0

我認爲在該網站他們通過調用'javascripts'來保護cookie,你是否嘗試過與其他一些網站? – yasmuru

回答

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現在似乎更可靠,但我沒有廣泛地測試它。

+0

它不起作用:( – vietnguyen09

+1

他們將CookieContainer重命名爲CookieManager,我更新了答案 – Sire

+0

@Sire有什麼方法可以選擇特定的Cookie?例如User_ID? – rgerculy