私はHttpWebRequestのを使用して、以下のWebサイトにログオンしようとしています:http://mostanmeldung.moessinger.at/login.phpHttpWebRequestの(ポスト)とリダイレクト
テキストはドイツ語であるが、彼らは本当に重要ではありません。ソースコードを見れば(私の書かれていないので、悪いスタイルのために私を責めないでください:P)、2つの入力タグを含むフォームタグが表示されます。最初の名前は「BN」(ユーザー名)、2番目の名前は「PW」(パスワード)です。私はHttpWebRequestクラスを使用してこれらの2つの入力の値を含むデータをWebサーバーに送信しようとしています。しかし、値を投稿すると、リクエストが "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行)でのメッセージボックスが私の代わりに「einloggen.php」の「login.php」の内容を示してい私はリダイレクトされています。何故ですか?
ああそうですか?それを知らなかった!ありがとう。 – haiyyu