通过Window表单提交html表单

时间:2010-08-13 11:54:32

标签: c#

我需要自动化一个widsite的登录过程。 谷歌搜索了一段时间后,我写了这段代码。 但问题是在运行此代码后,没有错误,没有输出。 我无法知道我哪里出错了。

private void Form1_Load(object sender, EventArgs e)

        {
            WebBrowser browser = new WebBrowser();
            string target = "http://authcisco/auth.html";
            browser.Navigate(target);
            browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Credentials);   
}
private void Credentials(object sender, WebBrowserDocumentCompletedEventArgs e)

        {
            WebBrowser b = (WebBrowser)sender;
            b.Document.GetElementById("userName").SetAttribute("value", "shyam");
            b.Document.GetElementById("pass").SetAttribute("value", "shyam");
            b.Document.GetElementById("Submit").InvokeMember("click");  

        }  

谢谢。

1 个答案:

答案 0 :(得分:1)

我会说使用HttpWebRequest而不是自动化浏览器实例会更容易。

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://authcisco/auth.html");
wr.Method = "POST";
wr.ContentType = "application/x-www-form-urlencoded";
string content = string.Format("userName={0}&pass={1}", HttpUtility.UrlEncode(Username), HttpUtility.UrlEncode(Password));
byte[] data = System.Text.Encoding.ASCII.GetBytes(content);
wr.ContentLength = data.Length;
wr.GetRequestStream().Write(data, 0, data.Length);