我想获得某个页面发布的所有Cookie。
使用Chrome的开发者工具,我可以看到一个页面发布了adsense Cookie。但是当我尝试使用HttpWebRequest时,我无法使用response.Cookies看到这些cookie。
示例,访问该页面:http://smallbiztrends.com/我可以看到使用开发人员工具存在adsense Cookie但我无法使用HttpWebRequest访问此Cookie ...
有人有解决方案吗?我做错了什么?
答案 0 :(得分:1)
这些Cookie最有可能来自网站提供的html页面上的几个<iframe>
。
如果您想获取所有这些cookie,您需要获取html,然后解析它以查找所有标记,然后加载其src
属性。
请注意,其中一些可能还需要运行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