分类:
- 1.在WebBrowser中获取Cookie
- CookieContainer myCookieContainer = new 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.google.com";
- myCookieContainer.Add(ck);
- }
- WebClient设置cookie!
- WebClient wc = new WebClient();
- wc.Headers.Add("Cookie", "PHPSESSID=" + cookie + ";");
- // 注意,这里是Cookie,不是Set-Cookie
- byte[] re = wc.UploadData(Global.RootPath + "test.php", new byte[0]);
- System.Text.UTF8Encoding converter = new System.Text.UTF8Encoding();
- string str = converter.GetString(re);
- 2. 在WebBrowser中设置Cookie
- public partial class WebBrowserControl : Form
- {
- private String url;
- [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
- public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
- public WebBrowserControl(String path)
- {
- this.url = path;
- InitializeComponent();
- // set cookie
- InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);
- // navigate
- webBrowser.Navigate(url);
- }
- }
- 3.将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;
- string postdata = "id=2005&action=search&name=";
- byte[] byte1 = Encoding.ASCII.GetBytes(postdata);
- hreq.ContentLength = byte1.Length;
- Stream poststream = hreq.GetRequestStream();
- poststream.Write(byte1, 0, byte1.Length);
- poststream.Close();
- HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();