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();
  • 相关阅读:
    c#基础问题笔记(一)
    自动化技术中的进给电气传动研习笔记2
    自动化技术中的进给电气传动研习笔记1
    汉字在电脑中是如何存储与编码的呢?
    三十分钟掌握STL
    python练习:函数2
    python练习:函数3
    Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form ResumeForm needs updating.
    vue 数组对象取对象的属性: Cannot read property 'xxxx' of undefined
    python练习:函数4
  • 原文地址:https://www.cnblogs.com/LiMin/p/4508738.html
Copyright © 2011-2022 走看看