填写html输入元素并提交表单

时间:2015-02-09 19:31:24

标签: c# html .net http webclient

我正在尝试使用c#和一些http代码提交我的Twitter登录名和密码。

我有这个HTML代码:

<div class="row password error">
  <label for="password" tabindex="-1">Password</label>
  <input aria-invalid="true" aria-required="true" autofocus="autofocus" class="password text" id="password" name="session[password]" type="password" value="" />
</div>

我正试图以这种方式做出回应:

var encoding = new ASCIIEncoding();
var postData = ("password=" + Social); 
byte[] data = encoding.GetBytes(postData);
var myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
myRequest.AllowAutoRedirect = true;     
var newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();

var response = myRequest.GetResponse();
var responseStream = response.GetResponseStream();
var responseReader = new StreamReader(responseStream);
var result = responseReader.ReadToEnd();

return result;

但是你可以看到输入控件的名字是session [密码],也许是问题,如果是这样,我怎样才能正确输入密码并提交这个表格。

更新小提琴结果:http://pastebin.com/raw.php?i=AcG8HUKj 感谢。

1 个答案:

答案 0 :(得分:0)

当您使用浏览器执行常规登录时,我建议您检查浏览器和Twitter网站之间的HTTP流量。例如,使用Fiddler。

然后检查您从c#代码发送的请求,并与从浏览器发送的请求进行比较。注意标题和cookie。可能需要某种握手。