Ich habe ein besonderes Problem, wo eine .aspx-Site wird nicht generiert eine Sitzung ID-Cookie mit einer Post-Anfrage mit HttpComponents gemacht.Probleme mit asp.net und Java HttpComponents Post-Anfrage
Die Website ist der Login für den Online-Terminplaner meiner Schule. https://www.lectio.dk/lectio/22/login.aspx Alternativ habe ich geschrieben, die HTML Pastebin: http://pastebin.com/nMhxfgjL
(Brugernavn Benutzernamen und adgangskode ist durch ein Passwort)
ich die Namen der Eingabefelder identifiziert m $ Inhalt $ username2 und m $ Inhalt $ password2 sein
Mein Code sieht wie folgt aus:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("https://www.lectio.dk/lectio/22/login.aspx");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null) {
entity.consumeContent();
}
System.out.println("Initial set of cookies:");
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
HttpPost httpost = new HttpPost("https://www.lectio.dk/lectio/22/login.aspx");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("m$Content$username2", "blabla")); //set your own username
nvps.add(new BasicNameValuePair("m$Content$password2", "blabla")); //set your own password
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null) {
entity.consumeContent();
}
System.out.println("Post logon cookies:");
cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
Aus offensichtlichen Gründen habe ich nicht meinen Benutzernamen und ein Kennwort enthalten.
Der Ausgang ich vom Laufen sie bekommen, ist
Login-Formular erhalten: HTTP/1.1 200 OK
Erste Reihe von Cookies:
[Version: 0] [name: lecmobile] [Wert: 0] [Domäne: www.lectio.dk] [Pfad: /] [Ablauf: Mo Dez 31 00:00:00 CET 2029]
[Version: 0] [Name: lectiogsc] [Wert: 831859d3-370c-a582-340d-0377177bfcae] [Domäne: www.lectio.dk] [Pfad: /] [Ablauf: Sa 1. JANUAR 00.59.59 CET 10000]
Login-Formular erhalten: HTTP/1.1 200 OK
Beitrag Anmelde Cookies:
[Version: 0] [name: lecmobile] [Wert: 0] [Domäne: www.lectio.dk] [Pfad: /] [Ablauf: Mo Dez 31 00:00:00 CET 2029]
[Version: 0] [Name: lectiogsc] [ Wert: 831859d3-370c-a582-340d-0377177bfcae] [domain: www.lectio.dk] [Pfad: /] [Ablauf: Sa 1. JANUAR 00.59.59 CET 10000]
Der einzige relevante Cookie ist der "ASP.NET_SessionId". Anscheinend wirst du das nicht bekommen, zumindest nicht mit einem Wert, bis du dich einloggst.
Auch könnte ich mir vorstellen, dass die HTTP-Antwort nicht 200 wäre, da man bei erfolgreicher Anmeldung umgeleitet wird ...
jede mögliche Hilfe würde lieben :)
Dank Mike.
Angst nicht. Es ist ein Problem mit der Postanforderung. Wenn ich mich manuell anmelde, erhalte ich den Session-Cookie. –
Nur zur Erinnerung: Session-Cookie ist nicht unbedingt mit der Anmeldung verbunden. Wenn die Sitzungsverwaltung aktiviert ist, enthält die Antwort von der ersten Anfrage möglicherweise einen Sitzungscookie. –
Ich weiß, aber es ist in diesem Fall, wie ich vom Testen mit dem Browser sehen kann :) –