当前位置:首页 > c# webbrowser 获取完整Cookie的方法

c# webbrowser 获取完整Cookie的方法

点击次数:5125  更新日期:2014-08-11

在c#编程中,发现使用WebBrowser的Document.Cookie这个属性并不能获取完整的cookie内容,下面的方法可以解决这个问题


[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]

        static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref int pcchCookieData, int dwFlags, object lpReserved);


        private static string GetCookieString(string url)

        {

            // Determine the size of the cookie   

            int datasize = 256;

            StringBuilder cookieData = new StringBuilder(datasize);


            if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))

            {

                if (datasize < 0)

                    return null;


                // Allocate stringbuilder large enough to hold the cookie   

                cookieData = new StringBuilder(datasize);

                if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))

                    return null;

            }

            return cookieData.ToString();

        }