如何在c#中获取网页发布的所有cookie?

时间:2016-07-25 17:58:43

标签: c# .net

我想获得某个页面发布的所有Cookie。

使用Chrome的开发者工具,我可以看到一个页面发布了adsense Cookie。但是当我尝试使用HttpWebRequest时,我无法使用response.Cookies看到这些cookie。

示例,访问该页面:http://smallbiztrends.com/我可以看到使用开发人员工具存在adsense Cookie但我无法使用HttpWebRequest访问此Cookie ...

有人有解决方案吗?我做错了什么?

1 个答案:

答案 0 :(得分:1)

这些Cookie最有可能来自网站提供的html页面上的几个<iframe>

如果您想获取所有这些cookie,您需要获取html,然后解析它以查找所有标记,然后加载其src属性。

enter image description here

请注意,其中一些可能还需要运行javascript ...您基本上需要浏览器提供的所有功能。简单的WebRequest是不够的。

如果您要尝试一下,请确保创建CookieContainer并在每次请求时设置该实例:

var cookies = new CookieContainer();

WebRequest req = WebRequest.Create(formUrl);
req.CookieContainer = cookies;

// lots of handling 

// next request
req = WebRequest.Create(formUrl);
req.CookieContainer = cookies; // reuse cookies