1、WebBrowser設定Cookie
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、将WebBrowser的cookie資訊傳給HttpWebRequest.
先建一個"CookieContainer" 把WebBrowser中的Cookie儲存在裡面
//在WebBrowser中登入 cookie儲存在 WebBrowser.Document.Cookie中

CookieContainer myCookieContainer = new CookieContainer();



//String 的Cookie 要轉成 Cookie型的 并放入CookieContainer中

string cookieStr = webBrowser1.Document.Cookie;

string[] cookstr = cookieStr.Split(';');

foreach (string str in cookstr)
{
string[] cookieNameValue = str.Split('=');
Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieNameValue[1].Trim().ToString());
ck.Domain = "www.abc.com";//必須寫對
myCookieContainer.Add(ck);
}


HttpWebRequest hreq = (HttpWebRequest)HttpWebRequest.Create("http://www.abc.com/search.asp");

hreq.Method = "POST";

hreq.ContentType = "application/x-www-form-urlencoded";


//自己建立的CookieContainer

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();
本文轉自94cool部落格園部落格,原文連結:http://www.cnblogs.com/94cool/articles/1533002.html,如需轉載請自行聯系原作者