獲取瀏覽器的Cookie
阿新 • • 發佈:2018-05-09
reader etc private 使用 nbsp builder err 完整 inter
在webbowser中,如果想獲取cookie可以使用如下方法
webBrowser1.Document.Cookie;
但是這個方法獲取的cookie往往不全。
需要使用如下方法
private const int INTERNET_COOKIE_HTTPONLY = 0x2000; public static string GetCookie(string url) { int capacity = 0x200; StringBuilder cookieData = new StringBuilder(capacity); if (!InternetGetCookieEx(url, null, cookieData, ref capacity, 0x2000, IntPtr.Zero)) { if (capacity < 0) { return null; } cookieData = new StringBuilder(capacity); if (!InternetGetCookieEx(url, null, cookieData, ref capacity, 0x2000, IntPtr.Zero)) { return null; } } return cookieData.ToString(); } [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetGetCookieEx(string url, string cookieName, StringBuilder cookieData, ref int size, int flags, IntPtr pReserved);
調用的時候必須傳入完整的URL
cookie = CookieReader.GetCookie(this.webBrowser1.Url.ToString());
這樣得到的cookie比較完整
獲取瀏覽器的Cookie