WebBrowser的Cookie操作

WebBrowser的Cookie操作

标签: webbrowserstringbyteencodingurlpath
  11557人阅读  评论(1)  收藏  举报
  分类:
   
[csharp]  view plain  copy
 print ?
  1. 1.在WebBrowser中获取Cookie  
  2.   
  3. CookieContainer myCookieContainer = new CookieContainer();  
  4.   
  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.google.com";  
  12.     myCookieContainer.Add(ck);  
  13. }  
  14.   
  15. WebClient设置cookie!  
  16. WebClient wc = new WebClient();  
  17. wc.Headers.Add("Cookie""PHPSESSID=" + cookie + ";");  
  18. // 注意,这里是Cookie,不是Set-Cookie  
  19. byte[] re = wc.UploadData(Global.RootPath + "test.php"new byte[0]);  
  20. System.Text.UTF8Encoding converter = new System.Text.UTF8Encoding();  
  21. string str = converter.GetString(re);  
  22.   
  23.   
  24. 2. 在WebBrowser中设置Cookie  
  25. public partial class WebBrowserControl : Form  
  26. {  
  27.         private String url;  
  28.   
  29.         [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]  
  30.         public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);  
  31.   
  32.         public WebBrowserControl(String path)  
  33.         {  
  34.             this.url = path;  
  35.             InitializeComponent();  
  36.   
  37.             // set cookie  
  38.             InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);  
  39.   
  40.             // navigate  
  41.             webBrowser.Navigate(url);  
  42.         }         
  43. }  
  44.   
  45. 3.将WebBrowser的cookie信息传给HttpWebRequest  
  46.   
  47. 先建一个"CookieContainer" 把WebBrowser中的Cookie保存在里面  
  48.   
  49. //在WebBrowser中登录cookie保存在WebBrowser.Document.Cookie中       
  50. CookieContainer myCookieContainer = new CookieContainer();  
  51.   
  52. //String 的Cookie 要转成 Cookie型的 并放入CookieContainer中  
  53. string cookieStr = webBrowser1.Document.Cookie;  
  54. string[] cookstr = cookieStr.Split(';');  
  55.   
  56. foreach (string str in cookstr)  
  57. {  
  58.     string[] cookieNameValue = str.Split('=');  
  59.     Cookie ck = new Cookie(cookieNameValue[0].Trim().ToString(), cookieNameValue[1].Trim().ToString());  
  60.     ck.Domain = "www.abc.com";//必须写对  
  61.     myCookieContainer.Add(ck);  
  62. }  
  63.   
  64. HttpWebRequest hreq = (HttpWebRequest)HttpWebRequest.Create("http://www.abc.com/search.asp");  
  65. hreq.Method = "POST";  
  66. hreq.ContentType = "application/x-www-form-urlencoded";  
  67.           
  68. //自己创建的CookieContainer  
  69. hreq.CookieContainer = myCookieContainer;  
  70.           
  71. string postdata = "id=2005&action=search&name=";  
  72. byte[] byte1 = Encoding.ASCII.GetBytes(postdata);  
  73. hreq.ContentLength = byte1.Length;  
  74.            
  75. Stream poststream = hreq.GetRequestStream();  
  76. poststream.Write(byte1, 0, byte1.Length);  
  77. poststream.Close();  
  78.        
  79. HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值