获取浏览器的Cookie
在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比较完整