WebBrowser的Cookie操作(与CookieContainer的关系)
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 cookieInternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID);// navigatewebBrowser.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();
转载于:https://www.cnblogs.com/xiongrx/archive/2012/12/06/5514501.html
WebBrowser的Cookie操作(与CookieContainer的关系)相关推荐
- WebBrowser的Cookie操作
WebBrowser的Cookie操作 1.在WebBrowser中获取Cookie CookieContainer myCookieContainer = new CookieContainer() ...
- WebBrowser的Cookie操作之流量刷新机
最近一直在思考着如何通过代码去伪装或实现人工自然浏览网页的效果,起初能想到的是用WebBrowser实现这一效果,需要达到的功能预想有以下几点: 1.自动刷新 2.模拟人工下拉滚动条并停留一段时间: ...
- php header setcookie,php中header头设置Cookie与内置setCookie的区别,和js对cookie操作
首先声明,浏览的Cookie操作都是通过HTTP Header(俗称"Http头") 来实现.所有的服务器与客户端之间Cookie数据传输都是通过Http请求头来操作. PHP中* ...
- django13:Session与Cookie操作
Session与Cookie cookie 服务端保存在客户端浏览器上的信息都可以教cookie 表现形式一般是k:v键值对(可以多个) 优化: 随机字符串1:用户1相关信息 随机字符串2:用户2相关 ...
- cookie无法读取bdstoken_第二章(第12节):cookie操作
有时候我们需要验证浏览器中 cookie 是否正确,因为基于真实 cookie 的测试是无法通过白盒和集成测试进行的.WebDriver 提供了操作 cookie 的相关方法,可以读取.添加和删除 c ...
- js cookie操作
//cookie操作3个方法 //设置cookie function setCookie(name, value) { var argv = setCookie.arguments; var argc ...
- 对cookie和子cookie操作的封装
1 /**2 * 封装cookie的操作3 * @type {Object}4 */5 var CookieUtil = {6 /**7 * 根据cookie的名字获取相应的值8 * @param n ...
- session保存密码_年薪百万之路--第六十四天 Cookie操作与session操作
forms组件源码 切入点:form_obj.is_valid() """ def is_valid(self):"""Returns Tr ...
- 使用jquery.cookie操作Cookie实例
我们在WebForm上增加 "增加,删除,修改"三个按钮,并使用一个文本框来显示当前写入的Cookie的内容,我们将为每个按钮写一个处理函数. 对Cookie操作实例 <%@ ...
最新文章
- 将高级service开发简单化
- ZedGraph在Web中的使用
- 这个德国山寨工厂靠抄袭干到240亿,让硅谷恨之入骨
- 设置linearlayout最大高度_技术案例 | 排烟口个数与挡烟垂壁高度的关系探讨
- arcgis公里网格制作
- 如果你觉得 Git 很迷惑人,那么这份小抄正是为你准备的!
- 正则表达式与html信息提取,基于正则表达式的HTML信息提取.pdf
- 使用Zeigarnik效应来学习编码更快
- Python模块之uuid
- selenium headless报错Message: unknown error: failed to wait for extension background page to load
- c++中sort()的用法
- c语言五位数大到小排序,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
- MyBatis 的 4 个妙用,别再踩坑了!
- ViewPager.getChildCount() 含义
- CryptoJS加密使用
- 通过docker搭建Yapi
- 计算机按电源键无法反应,电脑无法开机怎么办 按电脑开机键也没反应的原因及处理解决办法...
- 自定义原生JS键盘快捷键和vue-hotkey
- WeaveSocket框架-Unity太空大战游戏-服务端-1
- 谷歌大小写转换_如何轻松更改Google文档中文本的大小写
热门文章
- c语言exit_C语言实现2048
- 没有内存条电脑能开机吗_电脑没内存条能开机吗?这位朋友说他的电脑没内存条都用几年了!...
- 怎样在html中实现图层重叠,javascript – 在HTML5画布中实现图层
- python骂人的程序_Python实现敏感词过滤的4种方法
- android listview下拉刷新动画,ListView下拉刷新实现方式详解和改造(上)
- 计算机为什么启动二次才能打开,为什么电脑要2次重启才能启动显示器那
- python敏感词过滤代码简单_大型企业都在用,Python实现敏感词过滤
- mx250 计算能力_熟悉的刀法:英伟达 MX 250 也有 25W 和 10W 两个版本
- python 解码gbk_Python3的url编码和解码,自定义gbk、utf-8的例子
- c++ stack 遍历_python实现二叉树的遍历以及其他基本操作