S
samotyr
Gast
Hallo Leute,
ich hoffe ihr könnt mir weiterhelfen. Seit Tagen versuche ich bereits mit Java ein kleines Tool zu schreiben, dass eine Internetseite (mit meinen Noten) parst.
Verbinden kann ich mich mittlerweile, dazu musste ich allerdings den Trustmanager überschreiben, so dass alle Zertifikate angenommen werden. Grund: meine FH nutzt ein eigenes SSL Zertifikat und ich habs nicht anders eingebunden bekommen .
Aber das Verbinden geht auf jedenfall, ich kann auch die HEADER-Daten abrufen, die wie folgt aussehen:
Url lautet: https://qis.fh-trier.de/qisserver/rds?state=user&type=0
Verbindung steht wohl somit. Ich benutze dafür die Klasse URLConnection. Der Input wird empfanden durch einen InputStreamReader, output soll gesendet werden durch OutputStreamWriter.
Hier der Code für die Initialisierung:
Das eigentliche Problem stellt das Einloggen dar. Folgende Formulardaten werden vom Server gesendet:
Und u.a. so habe ich versucht die Postdaten zu verschicken:
Vielen Dank schonmal an alle, die bis hierher gelesen haben
Der Code funktioniert leider nicht, ich bekomme einfach wieder die gleiche Seite angezeigt, wo ich mich einlogen kann. Ich hab mittlerweile rausgefunden, dass die URL eine GET Variable (type, siehe oben) hat, die man auf 1 (statt 0) setzen muss, um sich einloggen zu können. Sieht man ja auch beim Formularcode, dort ist type=1 gesetzt, sonst wird immer nur type=0 benutzt (vor und nach der Anmeldung)
Wenn ich das als Standardadresse nehme, dann erscheint: Anmeldung fehlgeschlagen.
Für einen Tipp wäre ich sehr dankbar, ich habe denke ich mittlerweile alle Tutorials im Inet, die ich finden konnte durch. Leider ohne Erfolg. Mein dicker Java Wälzer hier Zuhause behandelt nicht mal das Thema HTTP/SSL etc, ebenso wenig wie das alte Skript meines Profs.
Hab auch schon versucht über dieses HttpClient-Projekt die Sache zu regeln. Dies scheiterte bei mir aber an dem Zertifikat der FH.
Die oben benutzten Codes sind größtenteils die, die ich auf den Tutorialseiten von sun finden konnte. Nicht das einer auf die Idee kommt, ich hätte nicht die Javadoc bemüht.
mfg,
Sam
ich hoffe ihr könnt mir weiterhelfen. Seit Tagen versuche ich bereits mit Java ein kleines Tool zu schreiben, dass eine Internetseite (mit meinen Noten) parst.
Verbinden kann ich mich mittlerweile, dazu musste ich allerdings den Trustmanager überschreiben, so dass alle Zertifikate angenommen werden. Grund: meine FH nutzt ein eigenes SSL Zertifikat und ich habs nicht anders eingebunden bekommen .
Aber das Verbinden geht auf jedenfall, ich kann auch die HEADER-Daten abrufen, die wie folgt aussehen:
Header: HTTP/1.1 200 OK
Header: Tue, 05 Feb 2008 17:39:52 GMT
Header: Apache/2.0.55 (Ubuntu) mod_jk/1.2.14 mod_ssl/2.0.55 OpenSSL/0.9.8a
Header: JSESSIONID=D0F6AB0221B85805F94A9502FAB89949; Path=/qisserver; Secure
Header: 6457
Header: timeout=15, max=100
Header: Keep-Alive
Header: text/html;charset=Cp1252
Url lautet: https://qis.fh-trier.de/qisserver/rds?state=user&type=0
Verbindung steht wohl somit. Ich benutze dafür die Klasse URLConnection. Der Input wird empfanden durch einen InputStreamReader, output soll gesendet werden durch OutputStreamWriter.
Hier der Code für die Initialisierung:
Code:
public Connector(String adress){
// String hostname
hostname = adress;
// URL baseURL
// ConnectionHelper wandelt den String adress in eine URL um und überschreibt den TrustManager
baseURL = ConnectorHelper.start(adress);
try{
// BufferedReader in
in = new BufferedReader( new InputStreamReader( baseURL.openStream()) );
//URLConnection connection
connection = baseURL.openConnection();
connection.setDoOutput(true);
// OutputStreamWriter out
out = new OutputStreamWriter(connection.getOutputStream());
} catch(Exception e){
System.err.println( "Unhandled " + e.toString() );
}
}
Das eigentliche Problem stellt das Einloggen dar. Folgende Formulardaten werden vom Server gesendet:
Code:
[B][COLOR="Red"]<form method="post" action="https://qis.fh-trier.de/qisserver
/rds;jsessionid=D58FFC53E4A8C03019BE90A663360874?state=user&type=1&category=auth.login&startpage=portal.vm" name="loginform">[/COLOR][/B]
<table align="left" border=0>
<tr><th align="left" class="gross" valign="top" colspan="3"><h1 class="gross" style="margin:0">Anmelden</h1></th></tr>
<!-- Benutzername und Passwort -->
<!-- Ist "Absperren" aktiv? -->
<tr valign="top">
<td class="normal">
<label for="Benutzername"> Benutzername:</label>
</td>
<td class="normal">
[B][COLOR="Red"]<input id="Benutzername" type="text" name="username" value="" class="loginuser" size="10" tabindex="1">[/COLOR][/B]
</td>
<td class="normal">
<center><input class="submit" type="submit" name="submit" value=" Ok " tabindex="7"></center>
</td>
</tr>
<tr>
<td class="normal">
<label for="pass">Passwort: </label>
</td>
<td class="normal">
[B][COLOR="Red"]<input type="password" id="pass" name="password" value="" class="loginpass" size="10" tabindex="2">[/COLOR][/B]
</td>
</tr>
<!-- /Benutzername und Passwort -->
</table>
</form>
Und u.a. so habe ich versucht die Postdaten zu verschicken:
Code:
public void eingabe(){
try{
// Construct data
String data = "";
data = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode("meinName", "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode("meinPasswort", "UTF-8");
// Send data
out.write(data);
out.flush();
// Get the response
String line;
while ((line = in.readLine()) != null) {
System.out.println( line );
}
out.close();
in.close();
} catch(Exception e){
System.err.println("Closing failed " +e.toString());
}
}
Vielen Dank schonmal an alle, die bis hierher gelesen haben
Der Code funktioniert leider nicht, ich bekomme einfach wieder die gleiche Seite angezeigt, wo ich mich einlogen kann. Ich hab mittlerweile rausgefunden, dass die URL eine GET Variable (type, siehe oben) hat, die man auf 1 (statt 0) setzen muss, um sich einloggen zu können. Sieht man ja auch beim Formularcode, dort ist type=1 gesetzt, sonst wird immer nur type=0 benutzt (vor und nach der Anmeldung)
Wenn ich das als Standardadresse nehme, dann erscheint: Anmeldung fehlgeschlagen.
Für einen Tipp wäre ich sehr dankbar, ich habe denke ich mittlerweile alle Tutorials im Inet, die ich finden konnte durch. Leider ohne Erfolg. Mein dicker Java Wälzer hier Zuhause behandelt nicht mal das Thema HTTP/SSL etc, ebenso wenig wie das alte Skript meines Profs.
Hab auch schon versucht über dieses HttpClient-Projekt die Sache zu regeln. Dies scheiterte bei mir aber an dem Zertifikat der FH.
Die oben benutzten Codes sind größtenteils die, die ich auf den Tutorialseiten von sun finden konnte. Nicht das einer auf die Idee kommt, ich hätte nicht die Javadoc bemüht.
mfg,
Sam
Zuletzt bearbeitet: