.NET 中使用 HttpWebResponse 时 Cookie 的读取
今天把一个网站登录配置到以前写的蜘蛛程序中,发现不能成功登录。检查后才发现,那个网站在登录成功后,输出了一个特殊路径的 Cookie,由于是使用 HttpWebRequest.Cookies 来获取的 Cookie,默认是获得当前路径相关的 Cookie,里面少了那个特殊的 Cookie,查了半天资料,也没有一个好的解决办法。最后采用 HttpWebResponse.Headers["Set-Cookie"] 来获得所有的 Cookie 字符串,然后写一段代码把这些 Cookie 字符串转换到 CookieCollection 中,解决了问题,以下是部分代码:
#region 读取 Cookie
string strCookie=myWebResponse.Headers["Set-Cookie"];
AddCookieWithCookieHead(CookieCol,strCookie,uri.Host);
#endregion
#region 从包含多个 Cookie 的字符串读取到 CookieCollection 集合中
private static void AddCookieWithCookieHead(CookieCollection cookieCol,string cookieHead,string defaultDomain)
{
if(cookieHead==null)return;
string[] ary=cookieHead.Split(';');
for(int i=0;i for(int i=0;i {
Cookie ck=GetCookieFromString(ary[i].Trim(),defaultDomain);
if(ck!=null)
{
cookieCol.Add(ck);
}
}
}
#endregion
#region 读取某一个 Cookie 字符串到 Cookie 变量中
private static Cookie GetCookieFromString(string cookieString,string defaultDomain)
{
string[] ary=cookieString.Split(',');
Hashtable hs=new Hashtable();
for(int i=0;i {
string s=ary[i].Trim();
int index=s.IndexOf("=");
if(index>0 && index {
hs.Add(s.Substring(0,index),s.Substring(index+1));
}
}
Cookie ck=new Cookie();
foreach(object Key in hs.Keys)
{
if(Key.ToString()=="path")ck.Path=hs[Key].ToString();
else if(Key.ToString()=="expires")
{
//ck.Expires=DateTime.Parse(hs[Key].ToString();
}
else if(Key.ToString()=="domain")ck.Domain=hs[Key].ToString();
else
{
ck.Name=Key.ToString();
ck.Value=hs[Key].ToString();
}
}
if(ck.Name=="")return null;
if(ck.Domain=="")ck.Domain=defaultDomain;
return ck;
}
#endregion
.NET 中使用 HttpWebResponse 时 Cookie 的读取的更多相关文章
- iOS AFNetworking中cookie的读取与设置
参考: http://blog.csdn.net/zhaoxy_thu/article/details/20532879 实际上AFNetworking中并没有专门针对cookie封装的代码,但是由于 ...
- 读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots
读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots 以下为异常详细信息: Exception in thread &q ...
- Java中读取txt文件中中文字符时,出现乱码的解决办法
这是我写的一个Java课程作业时,遇到的问题. 问题描述: 我要实现的就是将txt文件中的内容按一定格式读取出来后,存放在相应的数组. 我刚开始运行时发现,英文可以实现,但是中文字符就是各种乱码. 最 ...
- IOS webview中cookie的读取与保存-b
Cookie 的读取 将它放在 webViewDidFinishLoad 开始后执行 NSArray *nCookies = [[NSHTTPCookieStorage sharedHTTPCooki ...
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd ...
- 在Linux中,当需要从磁盘读取块时,进程状态会发生什么变化?被封锁了吗?如果是这样,如何选择另一个流程来执行?
当某个进程需要从磁盘中获取数据时,它实际上会停止在CPU上运行以让其他进程运行,因为该操作可能需要很长时间才能完成-至少需要5ms的磁盘寻道时间,而5ms就是1000万从程序的角度来看,CPU周期是永 ...
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你 ...
- JAVA中的Session和Cookie【转】
一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于才服务器端保持状态的 ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- .net网站开发(一):1.input表单元素
其实,在半年前我对网站开发还是完全不感冒的,不是没认识,而是只认识到表面.我以为网站模型就那几样,新闻.论坛.博客啥的,仿个站出来有什么意思?但现在我是知道了,大多应用开发还是采用B/S架构的,包括服 ...
- timed out waiting for input: auto-logout
The ssh "timed out waiting for input: auto-logout" messages is generated by ssh upon reach ...
- Stm32高级定时器(二)
Stm32高级定时器(二) 1 主从模式:主?从? 谈论主从,可知至少有两个以上的触发或者驱动信号,stm32内部有多个定时器,可以相互之间驱动或者控制. 主模式:定时器使能只受驱动时钟控制或者输出控 ...
- indexOf()忽略大小写方法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置.如果没有出现,则输出-1. indexOf() 方法对大小写敏感!所以要检索字符串且忽略大小写的时候,可以先把字符串转换成全部 ...
- (转)javascript组件开发方式
作为一名前端工程师,写组件的能力至关重要.虽然javascript经常被人嘲笑是个小玩具,但是在一代代大牛的前仆后继的努力下,渐渐的也摸索了一套组件的编写方式. 下面我们来谈谈,在现有的知识体系下,如 ...
- 除去内容中的HTML代码方法
显示内容时,需要截取部分,而不要全部显示.在截取时,会出现这样的情况: 截取一定量的字符串后,可能会把未关闭的表格HTML代码留下来,最終导致界面受影响, 下面的是C#解决办法: public str ...
- hbase 单机模式安装
1:下载安装包(我下载的0.94版本,如果考虑后期与hadoop兼容,需要找合适的版本) http://mirrors.hust.edu.cn/apache/hbase/hbase-0.94.20/h ...
- C#中Byte转换相关的函数
1.将一个对象转换为byte对象 public static byte GetByte(object o) { ; if (o != null) { byte tmp; if (byte.TryPar ...
- HDU 3001 状压DP
有道状压题用了搜索被队友骂还能不能好好训练了,, hdu 3001 经典的状压dp 大概题意..有n个城市 m个道路 成了一个有向图.n<=10: 然后这个人想去旅行.有个超人开始可以把他扔到 ...
- Js与flash交互:在html页面中用js与MyReport插件交互
Html页面与flash的加载 如下图,flash是html页面的一个插件节点. js与flash进行交互,首先要处理好html页面和swf的加载问题. Swf调用外部js方法,要确保js方法已存在, ...