通常情况下很简单一行就解决了,看下面代码
[C#] 纯文本查看 复制代码 //获取Cookie
string strcookie=webBrowser1.Document.Cookie;
如果要设置也是一样的
[code=csharp]//设置Cookie
webBrowser1.Document.Cookie=strcookie;[/code]
但是有时候使用这种方法会获取不全,或者是获取不到,下面我提供一个方法
[C#] 纯文本查看 复制代码 //取当前webBrowser登录后的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);
//取出Cookie,当登录后才能取
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();
}
在很多情况下我们会使用间进程的webBrowser去实现一些网页的请求和抓去,这个时候有部分网页是取不到Cookie的,那怎么办呢?下面我提供一个方法,应该99%的都能取到
使用方法也很简单
[code=csharp]//获取Cookie
string strcookie=GetCookieString(“你要获取Cookie的URl”);[/code]例如
[code=csharp]//获取Cookie
string strcookie=GetCookieString(“http://www.sufeinet.com”);[/code]
这样获取的是sufeinet.com的Cookie信息
|