zoukankan      html  css  js  c++  java
  • WebBrowser Cookie

    WebBrowser的Cookie操作
    
    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();
  • 相关阅读:
    JDK1.5新特性
    mysql的基本使用
    IO简单示例
    序列化
    策略模式
    div+css布局之流体浮动布局
    xp优化
    Junit所使用的设计模式
    SSH使用总结(annotation配置方式)
    hibernate3.6.0使用总结
  • 原文地址:https://www.cnblogs.com/LiMin/p/4508738.html
Copyright © 2011-2022 走看看