在工作中,我的任务是编写一个不断尝试登录我们网页的工具。
我被特别告知不要使用我们的网络服务,而是以用户的身份实际填写页面。
该页面是一个ASPX页面,控件全部在服务器端运行。提交按钮调用服务器端方法,并不像以下那样简单:
www.website.com/login.aspx?username=x&password=x。
或
POST: www.website.com/login.aspx
<login>
<username>x</username>
<password>x</password
</login>
我的想法是使用内置在WinForms中的Web浏览器控件,但这似乎不是最好的方式?
我应该怎么做?
注意:这是我们的网站,所以这不需要是通用的,我可以硬编码表单控件的名称。
public bool Login(string url, string username, string password)
{
}
答案 0 :(得分:0)
我实际上是在2天前使用命令行工具完成的。
我使用了来自.net测试自动化配方的代码,所以我不能在这里发布,但你基本上创建了一个webclient,然后发送假装来自Web浏览器的请求。
事实上,system.net webclient类有一个很好的sample code也可以查看HttpWebRequest Class,这可能会有所帮助
如果你想通过post方法发送内容,请将你的webrequest投射到像这样的httwebrequest
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.method = "POST"
如果你需要传递视图状态,那就太痛苦了。这应该让你开始。