HttpWebRequest C#“Href Click”

时间:2016-01-18 00:48:14

标签: c#

我目前正在使用C#开发一个项目。所以基本上我正在检查账户存在,但是我不确定最佳路线。

所以基本上开始我需要去网站的根目录(http://domain.com/)。我需要访问网站的根目的是正确设置cookie。比我需要“模拟”登录锚的点击。

但是我不想使用Web浏览器,因为它们非常慢。我想使用HttpWebRequests发送POST请求。但我不相信我可以从网站的根目录“点击”登录链接。

因此我想知道这是否可行,以及如何使用HttpWebRequests这样做。我知道使用C#WebBrowser我可以通过ID使用InvokeMember。

1 个答案:

答案 0 :(得分:0)

如果唯一的问题是获取主页面设置的Cookie,那么CookieContainer似乎至少可以帮助您获得大部分内容。向根页面发出GET请求以设置cookie,然后使用相同的容器向登录页面发出请求。

要获取登录URL(带有查询参数),您可以解析响应。如果它全部存储在响应的链接属性中,则可以像扫描具有正确id的标记的源并找到链接属性一样简单。请参阅HttpWebResponse.GetResponseStream方法。

但是,如果这是一个专业产品,最好使用真正的HTML解析器。 HTML Agility Pack看起来很受欢迎。从this answer开始,您可以直接将流提供到那里,然后使用它的API搜索元素。

如果链接触发某些JavaScript来提供网址/参数,那么您最好不要阅读(可能beautifying)JavaScript以查看其功能。