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();
  • 相关阅读:
    loadrunner(预测系统行为和性能的负载测试工具)
    SOA(面向服务的架构)
    Acunetix Web Vulnerability Scanner(WVS)(Acunetix网络漏洞扫描器)
    Redis主从复制
    Redis启动方式
    Struts2.5以上版本There is no Action mapped for namespace [/] and action name [userAction_login] associated with context path []
    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案
    Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
    intellij 编译 springmvc+hibernate+spring+maven 找不到hbm.xml映射文件
    MySQL8连接数据库
  • 原文地址:https://www.cnblogs.com/gotolnc/p/1536224.html
Copyright © 2011-2022 走看看