ASP.NET 抓取网页内容-保持登录状态

作者:vkvi 来源:ITPOW(原创) 日期:2008-7-18

利用 Post 数据成功登录服务器应用系统后,就可以抓取需要登录的页面了,那么我们就可能需要在多个 Request 间保持登录状态。

首先,我们要使用 HttpWebRequest,而不是 WebRequest。

与 WebRequest 相比,变化的代码是:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

注意:HttpWebRequest.Create 返回的类型仍是 WebRequest,所以要转化一下。

其次,使用 CookieContainer。

System.Net.CookieContainer cc = new System.Net.CookieContainer();
request.CookieContainer = cc;
request2.CookieContainer = cc;

这样 request 和 request2 之间就使用了相同的 Session,如果 request 登录了,那么 request2 也是登录状态。

最后,如何在不同的页面间使用同一个 CookieContainer。

要在不同的页面间使用同一个 CookieContainer,只有把 CookieContainer 加入 Session。

Session.Add("ccc", cc); //存
 
CookieContainer cc = (CookieContainer)Session["ccc"]; //取

 

相关文章