c# - 以编程方式填写并提交登录信息

时间:2014-12-01 16:30:19

标签: c# asp.net post webforms webrequest

使用C#和ASP.NET我想以编程方式填写Web表单的值,然后“POST'这些价值观。

我已经看过其他人使用webclient和其他课程的例子,例如:

How do you programmatically fill in a form and 'POST' a web page?

我希望执行类似的功能 - 我自动将数据发布到表单。在我的情况下,我希望提交数据来模拟登录。我有几个问题:

1)使用此帖子中的帖子代码,您如何确定帖子是否成功?我们真的不能认为200响应是成功的。假定302重定向表示成功也不一定是正确的。有没有确定的消防方式来确定我们在帖子后成功登录?

2)某些网站是否阻止了不属于自己域名的请求?

1 个答案:

答案 0 :(得分:2)

是的,有些网站会阻止请求。但您可以使用auth cookie检查登录信息。使用HttpWebRequest / HttpWebResponse

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));

byte[] data = Encoding.Default.GetBytes("item1=11111&item2=22222&Item3=33333");
request.Method = "POST";
request.ContentLength = data.Length;

Stream sout = request.GetRequestStream();
sout.Write(data, 0, data.Length);
sout.Flush();
sout.Close();

request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse) request.GetResponse();

现在检查response.Cookies是否有auth cookie