• 网上收集的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();
  • 相关阅读:
    一步步学习微软InfoPath2010和SP2010--第十一章节--创建批准流程(7)--approval节
    一步步学习微软InfoPath2010和SP2010--第十一章节--创建批准流程(6)--表单加载规则
    一步步学习微软InfoPath2010和SP2010--第十一章节--创建批准流程(5)--状态域
    一步步学习微软InfoPath2010和SP2010--第十一章节--创建批准流程(4)--审批域
    一步步学习微软InfoPath2010和SP2010--第十一章节--创建批准流程(3)--表单视图
    SharePoint Designer 2010 安装教程
    解耦合是架构可伸缩的必要前提
    如何使用新东西
    学习开源组件之前先有平台或者先有环境再说
    沟通的技巧
  • 原文地址:https://www.cnblogs.com/yuanbao/p/1133831.html
Copyright © 2020-2023  润新知