Hallo Leute,
ich kämpfe schon seid einigen Tagen mit meinem Projekt herum und stöbere im Internet nach Hilfestellungen bzw. Lösung meines Problems. Nun bin ich zu Euch gestoßen, in der Hoffnung, dass mir hier irgendjemand helfen kann.
Nun zu meinem Problem:
Ich versuche mich
hier einzuloggen und mit Daten von diversen Unterseiten zu arbeiten. Keine Sorge, die Daten sind frei zugänglich, da auch die
Login-Daten öffentlich sind...
Wenn ich jetzt mit dem Server kommuniziere (HTTPWebRequest), erhalte ich ein Websession-Cookie, dass ich in einem CookieContainer ablege. Mit diesem Websession-Cookie und den Login-Daten kann ich mich auch erfolgreich einloggen und ab da wirds knifflig. Der Server antwortet mit zwei neuen Cookies auf den Login, die auch im Container abgelegt werden. Beim nächsten Request werden alle drei Cookies benötigt, also Websession und die zwei neuen, aber der Container übergibt nur den Websession-Cookie...
Ich hab auch mittels CookieContainer.Count geprüft, ob sie alle drei Cookies im Container befinden. Sie sind auch da wo sie sein sollte, aber warum übergibt der Container jetzt nur das erste Cookie und nicht alle drei?
Hier noch ein bisschen Code:
Zitat: |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67:
| public string HTTPConnection(string Host, string request) {
string Weblogin = "LOGON_USERID=XXXXXXXX&LOGON_PASSWD=XXXXXXX"; string UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)"; try { HttpWebRequest sessionRequest = (HttpWebRequest)WebRequest.Create(Host + "startTetisAction.do?DOMAIN=Internet"); sessionRequest.UserAgent = UserAgent; sessionRequest.CookieContainer = CookieCont; HttpWebResponse sessionResponse = (HttpWebResponse)sessionRequest.GetResponse(); sessionResponse.Close(); } catch { MessageBox.Show("Konnte keine Verbindung herstellen"); }
toolStripStatusLabel1.Text = "Anmeldungsversuch..."; try { HttpWebRequest LoginRequest = (HttpWebRequest)HttpWebRequest.Create(Host + "startTetisAction.do"); LoginRequest.CookieContainer = CookieCont; LoginRequest.Method = "POST"; LoginRequest.UserAgent = UserAgent; LoginRequest.ContentType = "application/x-www-form-urlencoded"; LoginRequest.ServicePoint.Expect100Continue = false; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] loginDataBytes = encoding.GetBytes(Weblogin); LoginRequest.ContentLength = loginDataBytes.Length; Stream stream = LoginRequest.GetRequestStream(); stream.Write(loginDataBytes, 0, loginDataBytes.Length); stream.Close();
WebResponse LoginResponse = LoginRequest.GetResponse(); LoginResponse.Close(); toolStripStatusLabel1.Text = "Angemeldet"; } catch (Exception) { Console.WriteLine("Konnte nicht verbinden..."); }
try { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(Host + "zeigePortalNavAction.do"); req.CookieContainer = CookieCont; req.Method = "GET"; req.UserAgent = UserAgent; req.ContentType = "application/x-www-form-urlencoded"; req.ServicePoint.Expect100Continue = false;
WebResponse myWebResponse = req.GetResponse(); myWebResponse.Close(); } catch (Exception) { Console.WriteLine("Konnte keinen Request empfangen..."); } return "0"; } | |
MfG