原文:网上收集的WebBrowser的Cookie操作

1、WebBrowser设置Cookie



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> 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        {

            this.url = path;

            InitializeComponent();



            // set cookie

            InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);



            // navigate

            webBrowser.Navigate(url);

        }

        

}

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



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



//在WebBrowser中登录 cookie保存在 WebBrowser.Document.Cookie中



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> 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('=');

].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();

, byte1.Length);

            poststream.Close();

      

            HttpWebResponse hres = (HttpWebResponse)hreq.GetResponse();

网上收集的WebBrowser的Cookie操作的更多相关文章

  1. WebBrowser的Cookie操作之流量刷新机

    最近一直在思考着如何通过代码去伪装或实现人工自然浏览网页的效果,起初能想到的是用WebBrowser实现这一效果,需要达到的功能预想有以下几点: 1.自动刷新 2.模拟人工下拉滚动条并停留一段时间: ...

  2. C# WebBrowser HttpWebRequest Cookie 的结合运用。

    在WebBrowser下对网页进行操作其实是一件挺轻松的事情,他可以很方便实现自定义的网站访问习惯.而WebBrowser毕竟是对MS原生 控件的封装,当我们使用C#下的WebBrowser尤其是这样 ...

  3. MDK4.6和J-LINK调试出现问题,软件自动关闭,在网上收集整理的解决办法

    MDK4.6配J-LINK调试时提示升级,升级完成后,弹出下图提示框后,软件自动退出. 提示原因:由于MDK4.6能识别山寨JLINK导致.网络牛人分析如下: 今天将Keil MDK升级到了V4.54 ...

  4. [Angularjs]cookie操作

    摘要 现在很多app采用内嵌h5的方式进行开发,有些数据会存在webveiw的cookie中,那么如果使用angularjs开发单页应用,就需要用到angularjs的cookie操作.这里提供一个简 ...

  5. 获取WebBrowser全cookie 和 httpWebRequest 异步获取页面数据

    获取WebBrowser全cookie [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true) ...

  6. WebBrowser设置Cookie

    在winform里面经常会用到WebBrowser,这是一个难点就是如何设置cookies,注意,Docment对象是只读的,所以WebBrowser.Docment.cookie也就只有get方法, ...

  7. Python脚本控制的WebDriver 常用操作 <二十八> 超时设置和cookie操作

    超时设置 测试用例场景 webdriver中可以设置很多的超时时间 implicit_wait.识别对象时的超时时间.过了这个时间如果对象还没找到的话就会抛出异常 Python脚本 ff = webd ...

  8. cookie操作大全

    JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求. cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由J ...

  9. js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

    //是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == " ...

随机推荐

  1. GitLab 安装配置笔记(转)

    GitLab的安装方式 GitLab的两种安装方法: 编译安装 优点:可定制性强.数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx. 缺点 ...

  2. C利用宏语言(#,##,do…while(0)盛大)

    C利用宏语言(#,##.do-while(0)盛大) 1.使用宏预先定义__FILE__,__FUNCTION__.__LINE__. #include <stdio.h> void fu ...

  3. ym——Android之ListView性能优化

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android之ListView性能优化 假设有看过我写过的15k面试题的朋友们一定知 ...

  4. C#二进制字节数组操作功能 拦截字节数组SubByte

    C#二进制字节数组操作功能 拦截字节数组SubByte /// <summary> /// 截取字节数组 /// </summary> /// <param name=& ...

  5. jquery声明

    $("[id^=total_item]")代表 id随着total_item开始XX..必须jquery支持 版权声明:本文博主原创文章,博客,未经同意,不得转载.

  6. android user如何打开一个版本号root才干

    首先,你要确认你要打开adbd 的root 才干,或者让app 它有可能获得root 才干.   (1). adbd 的root 才干 我们通常debug user 当问题的版本号, 或行为user ...

  7. Servlet实例解说

    打开昨天上午,负责人突然问我,client控制信息,如何让在后台?我想回答:假设总体提交form,在C#使用代码request获取表单的内容.假设局部提交,在用JS和Ajax交互,通过Ajax的ope ...

  8. 鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

    本文总结了Linux操作系统来管理我们的硬盘和文件系统需要使用命令.当我们在系统中增加一个硬盘驱动器.什么是我们需要去通过这个硬盘就可以真正使用步骤?下面步骤: (1)对磁盘进行分区,新建能够使用的分 ...

  9. 深度解析:Android在Mms设置页面更改短信中心号码流程

    相关控件初始化方法:showSmscPref private void showSmscPref() {         int count = MSimTelephonyManager.getDef ...

  10. 一个ajax的Post要求

    <1> $.post(url,[data],[callback],[type]) 第一个参数是地址,第二个参数是一个参数传递.第三个参数是一个回调函数.參数是请求返回数据的类型 //一个a ...