C# HttpWebRequest(post)和重定向

C# HttpWebRequest(post)和重定向,c#,webserver,httprequest,C#,Webserver,Httprequest,我正在尝试使用HttpWebRequest登录以下网站: 文本是德语的,但它们并不重要。如果您查看源代码(顺便说一句,它不是我写的,所以不要因为它的糟糕样式而责备我:P),您将看到一个包含两个输入标记的表单标记。第一个名字是“BN”(用户名),第二个名字是“PW”(密码)。我试图使用HttpWebRequest类将包含这两个输入值的数据发送到Web服务器。但是,发布这些值会将请求重定向到另一个名为“einlogen.php”的页面。在那个网站上,我被告知我的登录是否成功 我的问题是,我能够发送数

我正在尝试使用HttpWebRequest登录以下网站:

文本是德语的,但它们并不重要。如果您查看源代码(顺便说一句,它不是我写的,所以不要因为它的糟糕样式而责备我:P),您将看到一个包含两个输入标记的表单标记。第一个名字是“BN”(用户名),第二个名字是“PW”(密码)。我试图使用HttpWebRequest类将包含这两个输入值的数据发送到Web服务器。但是,发布这些值会将请求重定向到另一个名为“einlogen.php”的页面。在那个网站上,我被告知我的登录是否成功

我的问题是,我能够发送数据没有任何问题,但是,我收到的只是“login.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。

哦,是这样吗?我不知道!谢谢