HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
来源:互联网 发布:js ajax 实例 编辑:程序博客网 时间:2024/05/22 00:26
倒腾了老久,终于把这两者的关系给弄清出了。也不辜负我一个上午的时间~~~
关于 HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的相关性质 MSDN和其他的博客上有很多,我就不再多说了,没有了解的自己去看看吧。
现在主要说说他们两个的区别。用过这两中属性的童鞋都发现,在大部分情况下它们两的内容是一模一样的,应为都是保存了和这次链接相关的Cookie,但是有一点不同:
HttpWebRequest.CookieContainer中包含的Cookie是与这次请求相关的所有Cookie,然而HttpWebResponse.Cookies却只包含这次请求中最后请求的URL相关的Cookie。
神马情况呢? 关键的是重定向,也就是说,当前如果访问的是Default1.aspx,并且Default1.aspx中会产生一个叫“Default1”的Cookie,并且会重定向到Default2.aspx页面。在Default2.aspx页面中同样会产生一个叫“Default2”的Cookie,并且会重定向到Default3.aspx页面。在Default3.aspx页面中会产生一个"Default3"的Cookie。到此为止整个请求就结束了。
此时HttpWebRequest.CookieContainer中包含了 3 个Cookie,分别为“Default1,Default2,Default3”,使用GetCookies方法
而此时HttpWebResponse.Cookies里面只包含了1个Cookie,那就是Default3。也就是最后一个页面所产生的Cookie。
这样,在自动提交表单来爬取,需要保持Session或者Cookie的页面时,需要将新产生的HttpWebResponse.Cookies中的Cookie保存起来,不能够直接的覆盖到以前的Cookie值了。并且要比对每次请求的HttpWebRequest.CookieContainer和HttpWebResponse.Cookies中的Cookie值,防止有遗漏,造成某些页面爬取不到。
PS:刚刚弄懂,可能有没有深入理解,还望高手拍砖O(∩_∩)O~
- HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
- HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
- HttpWebRequest 和 HttpWebResponse 的应用
- C#中HttpWebRequest与HttpWebResponse的使用方法
- C#中HttpWebRequest与HttpWebResponse的使用方法
- C#中HttpWebRequest与HttpWebResponse的使用方法
- C#中HttpWebRequest与HttpWebResponse的使用方法
- 关于HttpWebRequest和HttpWebResponse的应用
- HttpWebRequest,HttpWebResponse的用法和用途
- 关于HttpWebRequest和HttpWebResponse的应用
- 基于HttpWebRequest和HttpWebResponse的HttpHelper
- [C#]基于HttpWebRequest和HttpWebResponse的HttpHelper
- HttpWebRequest,HttpWebResponse用途和webServers的作用
- [C#]基于HttpWebRequest和HttpWebResponse的HttpHelper
- HttpWebRequest和HttpWebResponse类的认识
- c# HttpWebRequest与HttpWebResponse
- c# HttpWebRequest与HttpWebResponse
- c# HttpWebRequest与HttpWebResponse
- 初学前端
- js获取当前页面url网址信息
- Oracle SYS_CONNECT_BY_PATH函数使用
- 使用crontab,让linux定时执行shell脚本
- 蓝桥杯 数字三角形
- HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
- H5 DOM 全屏 api requestFullscreen
- bzoj2742 [HEOI2012]Akai的数学作业 (数学)
- MODBUS简介
- 青否云
- Reinforcement Learning_By David Silver笔记二: Markov Decision Processes
- iOS 上下滚动轮播的实现
- 求最大公约数
- 转发博客