转自:http://xcily1.blog.163.com/blog/static/287169162008975834286/
1、WebBrowser设置Cookie
1
public
partial
class
WebBrowserControl : Form
2 <img none';="" document.getelementbyid('codehighlighter1_50_596_open_text').style.display="none" ;="" document.getelementbyid('codehighlighter1_50_596_closed_image').style.display="inline" document.getelementbyid('codehighlighter1_50_596_closed_text').style.display="inline" ;"="" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px; max-width: 100%;"> {
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 <img none';="" document.getelementbyid('codehighlighter1_335_582_open_text').style.display="none" ;="" document.getelementbyid('codehighlighter1_335_582_closed_image').style.display="inline" document.getelementbyid('codehighlighter1_335_582_closed_text').style.display="inline" ;"="" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px; max-width: 100%;"> {
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
}
public
partial
class
WebBrowserControl : Form2 <img none';="" document.getelementbyid('codehighlighter1_50_596_open_text').style.display="none" ;="" document.getelementbyid('codehighlighter1_50_596_closed_image').style.display="inline" document.getelementbyid('codehighlighter1_50_596_closed_text').style.display="inline" ;"="" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px; max-width: 100%;"> {
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 <img none';="" document.getelementbyid('codehighlighter1_335_582_open_text').style.display="none" ;="" document.getelementbyid('codehighlighter1_335_582_closed_image').style.display="inline" document.getelementbyid('codehighlighter1_335_582_closed_text').style.display="inline" ;"="" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px; max-width: 100%;"> {
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 <img none';="" document.getelementbyid('codehighlighter1_302_584_open_text').style.display="none" ;="" document.getelementbyid('codehighlighter1_302_584_closed_image').style.display="inline" document.getelementbyid('codehighlighter1_302_584_closed_text').style.display="inline" ;"="" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px; max-width: 100%;"> {
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();
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 <img none';="" document.getelementbyid('codehighlighter1_302_584_open_text').style.display="none" ;="" document.getelementbyid('codehighlighter1_302_584_closed_image').style.display="inline" document.getelementbyid('codehighlighter1_302_584_closed_text').style.display="inline" ;"="" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px; max-width: 100%;"> {
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();
本文介绍如何使用WebBrowser控件设置Cookie,并演示了如何将WebBrowser中的Cookie信息传递给HttpWebRequest,以便进行后续的HTTP请求操作。

2102

被折叠的 条评论
为什么被折叠?



