Я пытаюсь войти на следующий веб-сайт с помощью HttpWebRequest: http://mostanmeldung.moessinger.at/login.phpHttpWebRequest (пост) и перенаправление
Тексты на немецком языке, но они на самом деле не имеет значения. Если вы посмотрите на исходный код (который, кстати, не был написан мной, поэтому не обвиняйте меня в его плохом стиле: P), вы увидите тег формы, который содержит два тега ввода. Имя первого - «BN» (имя пользователя), а второе - «PW» (пароль). Я пытаюсь отправить данные, содержащие значения для этих двух входов, на веб-сервер, используя класс HttpWebRequest. Однако публикация значений перенаправляет запрос на другую страницу под названием «einloggen.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», который Я перенаправлен. Почему это?
О, это так? Не знал этого! Благодарю. – haiyyu