1
public
partial
class
WebBrowserControl : Form
2 {
3 private String url;
4
5 [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
6 public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
7
8 public WebBrowserControl(String path)
9 {
10 this.url = path;
11 InitializeComponent();
12
13 // set cookie
14 InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);
15
16 // navigate
17 webBrowser.Navigate(url);
18 }
19
20}
2 {
3 private String url;
4
5 [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
6 public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
7
8 public WebBrowserControl(String path)
9 {
10 this.url = path;
11 InitializeComponent();
12
13 // set cookie
14 InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);
15
16 // navigate
17 webBrowser.Navigate(url);
18 }
19
20}
2、将WebBrowser的cookie信息传给HttpWebRequest.
先建一个"CookieContainer" 把WebBrowser中的Cookie保存在里面
//在WebBrowser中登录 cookie保存在 WebBrowser.Document.Cookie中
1
CookieContainer myCookieContainer
=
new
CookieContainer();
2
3
4 // String 的Cookie 要转成 Cookie型的 并放入CookieContainer中
5 string cookieStr = webBrowser1.Document.Cookie;
6 string [] cookstr = cookieStr.Split( ' ; ' );
7 foreach ( string str in cookstr)
8 {
9 string[] cookieNameValue = str.Split('=');
10 Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieNameValue[1].Trim().ToString());
11 ck.Domain = "www.abc.com";//必须写对
12 myCookieContainer.Add(ck);
13 }
14
15 HttpWebRequest hreq = (HttpWebRequest)HttpWebRequest.Create( " http://www.abc.com/search.asp " );
16 hreq.Method = " POST " ;
17 hreq.ContentType = " application/x-www-form-urlencoded " ;
18
19 // 自己创建的CookieContainer
20 hreq.CookieContainer = myCookieContainer;
21
22 string postdata = " id=2005&action=search&name= " ;
23 byte [] byte1 = Encoding.ASCII.GetBytes(postdata);
24 hreq.ContentLength = byte1.Length;
25
26 Stream poststream = hreq.GetRequestStream();
27 poststream.Write(byte1, 0 , byte1.Length);
28 poststream.Close();
29
30 HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();
2
3
4 // String 的Cookie 要转成 Cookie型的 并放入CookieContainer中
5 string cookieStr = webBrowser1.Document.Cookie;
6 string [] cookstr = cookieStr.Split( ' ; ' );
7 foreach ( string str in cookstr)
8 {
9 string[] cookieNameValue = str.Split('=');
10 Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieNameValue[1].Trim().ToString());
11 ck.Domain = "www.abc.com";//必须写对
12 myCookieContainer.Add(ck);
13 }
14
15 HttpWebRequest hreq = (HttpWebRequest)HttpWebRequest.Create( " http://www.abc.com/search.asp " );
16 hreq.Method = " POST " ;
17 hreq.ContentType = " application/x-www-form-urlencoded " ;
18
19 // 自己创建的CookieContainer
20 hreq.CookieContainer = myCookieContainer;
21
22 string postdata = " id=2005&action=search&name= " ;
23 byte [] byte1 = Encoding.ASCII.GetBytes(postdata);
24 hreq.ContentLength = byte1.Length;
25
26 Stream poststream = hreq.GetRequestStream();
27 poststream.Write(byte1, 0 , byte1.Length);
28 poststream.Close();
29
30 HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();