天天看点

使用C#的HttpWebRequest模拟登陆网站

这篇文章是有关模拟登录网站方面的。

实现步骤;

启用一个web会话

发送模拟数据请求(POST或者GET)

获取会话的CooKie 并根据该CooKie继续访问登录后的页面,获取后续访问的页面数据。

我们以登录人人网为例,首先需要分析人人网登录时POST的数据格式,这个可以通过IE9中只带的F12快捷键,调出开发人员工具。如下图:

使用C#的HttpWebRequest模拟登陆网站

通过开始捕获得到POST的地址和POST的数据

POST数据:

<a href="mailto:[email protected]&amp;password=111&amp;icode=&amp;origURL=http%3A%2F%2Fwww.renren.com%2Fhome&amp;domain=renren.com&amp;key_id=1&amp;_rtk=90484476">[email protected]&amp;password=111&amp;icode=&amp;origURL=http%3A%2F%2Fwww.renren.com%2Fhome&amp;domain=renren.com&amp;key_id=1&amp;_rtk=90484476</a>

POST地址:

http://www.renren.com/PLogin.do

下面就是代码示例来得到登录后页面(http://guide.renren.com/guide)的数据

HTMLHelper类

测试用例:

使用C#的HttpWebRequest模拟登陆网站

通过程序登录了网站后而直接进入登录后的页面。

首先还是发起一个启用一个web会话,然后发送模拟数据请求,获取会话的CooKie,再根据该CooKie将其写入到本地,通过程序直接打开登录后的页面。

该功能可用于无法修改第三方系统源代码而要做系统单点登录。

我们先在HTMLHelper类中添加一个方法:

再根据获取的CookieCollection写入本地,并打开登录后的页面

<a href="http://www.cnblogs.com/hoholuo/archive/2011/12/20/2295014.html">复制代码</a>

这样即可直接通过程序打开登录后的页面:

使用C#的HttpWebRequest模拟登陆网站