2014-01-06 74 views
3

我需要我的应用程序使用用户定义的登录名和密码登录网站。尽管发送POST数据非常简单,但我无法管理如何检查返回的页面是否显示“已登录”或“错误密码”语句。.NET验证POST请求结果

搜索指定语句的.html字符串太慢,并且比较预先设置的错误页面不工作,因为页面是动态加载的(使用相同的url)。

是否有任何lib用于管理.html内容?我可以使用Java或Python以及C#如果我必须

+0

关于与小提琴手询问什么? –

回答

0

我做了一些研究,发现正则表达式完全符合我的问题,因为他们是容易实现,并真快在这种情况下

如果有人也有一个这样的问题:

using System.Text.RegularExpressions; 

// .html document returned by page 
string webRequestResponse = getResponse(); 
// site error string 
const string REGEX = "Password is not correct."; 
// check if page contain that error 
bool wrongPassword = Regex.IsMatch(webRequestResponse, REGEX); 
0

通过脚本登录的问题,网站返回200 OK对两个登录结果的响应:已登录或未登录。因此,您将拥有解析所需字符串的传入html以验证成功的凭证检查。除此之外,没有其他办法可以提供一些API。

解析生成的HTML的最佳方法是使用HTML Agility Pack。我过去使用过它,并且从页面中获取所需的字符串是一种爆炸​​。

3

吃你的饼干

大多数的网站将使用cookies来跨多个请求跟踪当前用户的会话。在发送POST请求时,必须将Cookie存储附加到WebRequest,并检查存储以获取登录响应。

每个网站都会以不同方式实施他们的会话跟踪。因此,没有一种解决方案适合所有人,但在大多数情况下,您只需验证Cookie是否存在于给定名称下即可。该cookie包含的内容并不重要,但是当该Cookie存在时,您知道登录成功。

该cookie存储将不得不用于来自该用户会话的服务器的其他请求。所以你可能需要跟踪cookie。

网站可以使用其他方法跟踪用户会话,包括GET参数中的会话ID或使用Web服务器持久连接。

我不知道很多网站记录用户的内容,不使用cookies来跟踪用户会话。我会先看看那里。