如何使用C#

时间:2019-06-05 17:23:35

标签: c# php http

我尝试登录一个我不想使用C#命名的网站。 在php站点上,有两种形式的输入,分别称为“ httpd_username”和“ httpd_password”。登录按钮的属性为“ type = submit”。

我不知道为什么,但是不起作用

我尝试了许多堆栈溢出问题中的几个代码示例。 我想出的最后一个是

  var request = (HttpWebRequest)WebRequest.Create(loginpage);

  var postData = "httpd_username=" + textBox1.Text;
  postData += "&httpd_password=" + textBox2.Text;
  postData += "&form=submit";
  var data = Encoding.ASCII.GetBytes(postData);

  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  request.ContentLength = data.Length;

  using (var stream = request.GetRequestStream())
  {
    stream.Write(data, 0, data.Length);
  }

  var response = (HttpWebResponse)request.GetResponse();

  var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

  MessageBox.Show(responseString);

但是输入正确的凭据并不重要,在两种情况下,响应中返回的都是相同的html代码。

应该显示Web面板的html代码,但是响应返回登录html代码的html代码。

亲切的问候

编辑:使用此python代码可以正常工作:

response = browser.open(url)
browser.method = "POST"

for password in wordlist:

  browser.select_form(nr=0)

  browser.form['httpd_username'] = username
  browser.form['httpd_password'] = password.strip()


  response = browser.submit()

  newUrl = response.geturl()

1 个答案:

答案 0 :(得分:0)

使用Mechanize的.NET版本Mechanize.NET解决。