获取浏览器的Cookie
Posted liaoyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取浏览器的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比较完整
以上是关于获取浏览器的Cookie的主要内容,如果未能解决你的问题,请参考以下文章