C# HttpWebRequest(post)和重定向
我正在尝试使用HttpWebRequest登录以下网站: 文本是德语的,但它们并不重要。如果您查看源代码(顺便说一句,它不是我写的,所以不要因为它的糟糕样式而责备我:P),您将看到一个包含两个输入标记的表单标记。第一个名字是“BN”(用户名),第二个名字是“PW”(密码)。我试图使用HttpWebRequest类将包含这两个输入值的数据发送到Web服务器。但是,发布这些值会将请求重定向到另一个名为“einlogen.php”的页面。在那个网站上,我被告知我的登录是否成功 我的问题是,我能够发送数据没有任何问题,但是,我收到的只是“login.php”的内容,你必须在这个网站上输入用户名和密码 这就是我的代码的样子:C# HttpWebRequest(post)和重定向,c#,webserver,httprequest,C#,Webserver,Httprequest,我正在尝试使用HttpWebRequest登录以下网站: 文本是德语的,但它们并不重要。如果您查看源代码(顺便说一句,它不是我写的,所以不要因为它的糟糕样式而责备我:P),您将看到一个包含两个输入标记的表单标记。第一个名字是“BN”(用户名),第二个名字是“PW”(密码)。我试图使用HttpWebRequest类将包含这两个输入值的数据发送到Web服务器。但是,发布这些值会将请求重定向到另一个名为“einlogen.php”的页面。在那个网站上,我被告知我的登录是否成功 我的问题是,我能够发送数
string post = String.Format(PostPattern, Username, Password);
byte[] postBytes = Encoding.ASCII.GetBytes(post);
CookieContainer cookies = new CookieContainer();
// "Address": http://mostanmeldung.moessinger.at/login.php
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Address);
req.CookieContainer = cookies;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;
req.AllowAutoRedirect = true;
MessageBox.Show(post); // shows me "BN=boop;PW=hi"
Stream reqStream = req.GetRequestStream();
reqStream.Write(postBytes, 0, postBytes.Length);
reqStream.Close();
WebResponse res;
if (/*req.HaveResponse &&*/ (res = req.GetResponse()) != null)
{
StreamReader reader = new StreamReader(res.GetResponseStream());
MessageBox.Show(reader.ReadToEnd());
return AuthResult.Success;
}
return AuthResult.NoResponse;
第22行(结尾前5行)的消息框显示“login.php”的内容,而不是我重定向到的“einloggen.php”。为什么会这样?该表单上的操作指向einloggen.php,而不是login.php,因此您需要将帖子数据发送到einloggen.php。哦,是这样吗?我不知道!谢谢