WebClient-Session和Cookie

背景知识:Session和Cookie

http://blog.csdn.net/X_Craft/archive/2009/07/19/4361989.aspx

 

WebClient不会保存http响应报文中的SetCookie,更不会设置下一次http请求报文的Cookie,通过HTTP分析工具可以观察到这一点。也就是说两个WebClient调用之间不具有持续性。

 

在session方面一个典型的应用就是自动登录,在“Session和Cookie”一章中有一个Login.asp和ListData.asp,Login.asp在session中记录用户登录信息,ListData.asp中操作这个信息,而贯穿这两个页面的条件是session id和同一浏览器,服务端在Login.asp的HTTP响应报文头的SetCookie中返回session id浏览器在内存中保存session id 并在下一次对ListData.asp的请求报文中设置Cookie内容为session id,因为WebClient不具持续性,所以默认情况下利用WebClient是无法实现Login.asp自动登录后再调用ListData.asp显示出正确的用户名的。

 

在cookie方面,“Session和Cookie”一章中的Welcome.asp是一个典型例子,服务端在WelCome.asp响应报文头的SetCookie段中返回Cookie内容,浏览器会在磁盘上保存这个cookie,并在下一次对Welcom.asp的请求报文头中设置Cookie内容,因为WebClient不具持续性所以使用WebClient去访问这个页面,始终会返回第一次登录的信息。

 

无论是上述的session还是cookie应用,要使WebClient具有持续性,就需要在代码中处理SetCookie和Cookie

 

一种方式是直接处理WebClient的请求和响应报文头,以下是登录应用的示例代码

 

对于Welcome.asp的处理也是一样

 

另一种方式是继承WebClient,重写GetWebRuquest方法,具体代码请参考网上的相关文章。

 

 

参考资料:

 

WebClient类的使用中遇到的几个问题

http://bccu.cnblogs.com/archive/2006/04/29/388770.aspx

 

从WebBrowser中取得Cookie 和 WebClient设置cookie!

http://www.cnblogs.com/cai9911/archive/2008/03/05/1091443.html

 

实现支持会话的WebClient

http://www.cnblogs.com/listhome/archive/2007/11/22/968963.html

 

WebClient 保持 Session 和 Cookie

http://www.cnblogs.com/anjou/archive/2008/05/25/1206832.html

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值