• 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();
  • 相关阅读:
    嵌入式开发之davinci--- spi 中的时钟极性CPOL和相位CPHA
    Setting up a Single Node Cluster Hadoop on Ubuntu/Debian
    Install Java JDK JRE on Ubuntu/Debian with Apt-Get
    使用WICleanup清理Windows Installer 冗余文件
    WinSxS文件夹瘦身
    Linux时间同步+国内常用的NTP服务器地址
    How to fix Mysql table crashes
    Monitorix:一款面向Linux的轻型系统和网络监测工具
    How To Secure Apache with Let's Encrypt on Ubuntu (Free SSL)
    Latex表格太宽处理方法 (How to shorten Latex table length)
  • 原文地址:https://www.cnblogs.com/LiMin/p/4508738.html
Copyright © 2020-2023  润新知