Hi!
Ich versuche gerade irgendwie mich auf einer website einzuloggen um dann die darauf folgende Seite speichern zu koennen (grob gesagt..).
Zum Login ist folgendes Form auf der Seite vorhanden:
[php]<form action="index.php?page=login&mode=results_r" method="post" name="f">
<table>
<tr>
<td>Username:</td>
<td><input type="text" maxlength="20" size="20" name="userSearch" value=""></td>
</tr><tr>
<td>Password:</td>
<td><input type="password" maxlength="10" size="15" name="passSearch"></td>
</tr>
</table>
<input type="submit" name="submitLogin" value="Login">
</form>[/php]
An sich sollte es ja nicht schwer sein mittels Cookiecontainer und derartigen sachen das vorhaben zu schaffen.. aber irgendwie klappt das bei mir nicht..
Im folgenden mein Code zum Download der folgeseite:
Uri uri = new Uri("http://www.paldat.org/");
CookieContainer cookieContainer = new CookieContainer();
string html;
string loginData = "userSearch=Nachtwind&passSearch=abcde&submitLogin=Login";
HttpWebRequest sessionRequest = (HttpWebRequest)WebRequest.Create(uri);
sessionRequest.CookieContainer = new CookieContainer();
cookies = sessionRequest.CookieContainer;
HttpWebResponse sessionResponse = (HttpWebResponse)sessionRequest.GetResponse();
sessionResponse.Close();
// rtf1.Text += cookies.GetCookieHeader(uri) + "\n";
// Einloggen
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.paldat.org/index.php?page=login&mode=alp_r"); //mode=alp_r = index
req.CookieContainer = cookies;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] loginDataBytes = encoding.GetBytes(loginData);
req.ContentLength = loginDataBytes.Length;
Stream stream = req.GetRequestStream();
stream.Write(loginDataBytes, 0, loginDataBytes.Length);
stream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
req = (HttpWebRequest)HttpWebRequest.Create("http://www.paldat.org/index.php?page=login&mode=alp_r");
req.CookieContainer = cookies;
req.Method = "GET";
res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
html = sr.ReadToEnd();
rtf1.Text = html;
//MessageBox.Show(html);
hat jemand eine Idee, was ich da falsch mache?
Vielleicht hilft Dir dieser Beitrag weiter.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Nicht direkt - es ist eigentlich genau das gegenteil von dem, was ich wollte o0