zoukankan      html  css  js  c++  java
  • WebBrowser的Cookie操作

    1、WebBrowser设置Cookie
     1public partial class WebBrowserControl : Form
     2    {
     3        private String url;
     4
     5        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
     6        public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
     7
     8        public WebBrowserControl(String path)
     9        {
    10            this.url = path;
    11            InitializeComponent();
    12
    13            // set cookie
    14            InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);
    15
    16            // navigate
    17            webBrowser.Navigate(url);
    18        }

    19        
    20}


     2、将WebBrowser的cookie信息传给HttpWebRequest.

    先建一个"CookieContainer" 把WebBrowser中的Cookie保存在里面

    //在WebBrowser中登录 cookie保存在 WebBrowser.Document.Cookie中     
     1          CookieContainer myCookieContainer = new CookieContainer();
     2
     3
     4            //String 的Cookie 要转成 Cookie型的 并放入CookieContainer中
     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.abc.com";//必须写对
    12                myCookieContainer.Add(ck);
    13            }

    14
    15            HttpWebRequest hreq = (HttpWebRequest)HttpWebRequest.Create("http://www.abc.com/search.asp");
    16            hreq.Method = "POST";
    17            hreq.ContentType = "application/x-www-form-urlencoded";
    18         
    19            //自己创建的CookieContainer
    20            hreq.CookieContainer = myCookieContainer;
    21         
    22            string postdata = "id=2005&action=search&name=";
    23            byte[] byte1 = Encoding.ASCII.GetBytes(postdata);
    24            hreq.ContentLength = byte1.Length;
    25          
    26            Stream poststream = hreq.GetRequestStream();
    27            poststream.Write(byte1, 0, byte1.Length);
    28            poststream.Close();
    29      
    30            HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();
  • 相关阅读:
    简单的描述关于开发部署产生401,500的错误处理
    文件的批量打包下载
    json的序列化与反序列化
    实现MD5的加密和解密
    dropdownlist的OnSelectedIndexChanged方法不触发
    sqlserver错误2,error 40
    C#存储过程调用的三个方法
    SQL Server 错误:924 解决方法
    判断是否在时间间隔内
    切面添加日志
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1550045.html
Copyright © 2011-2022 走看看