Hi,
aus gegebenem Anlass bastel ich mir in der Uni gerade einen eigenen Browser mit Java (wäh Java).
Dieser kann inzwischen schon eine Menge (außer Dinge schön anzeigen, läuft rein über die Konsole), jetzt will ich mich auch bei webseiten anmelden können. Tut aber bisher nicht.
mein Problem ist das ich keine Ahnung hab an welcher Stelle es schief geht und warum. Vlt. hat ja jemand eine Idee wie ich das hinbekommen kann. Die Webseite bei der ich mich einloggen will hat in etwa follgenden Code:
<div class="login-block"> <form action="index.php?action=login&server_list=1" method="post" id="login_form" onsubmit="return Index.login_submit();"> <label for="user"> <strong >Benutzername:</strong> <span > <input id="user" name="user" class="text" type="text" value = "" onkeydown="if((e=window.event||event) && e.keyCode == 13 && $('#user').val() && $('#password').val()) $('#login_button').trigger('click');"/> </span> </label> <label for="password"> <strong >Passwort:</strong> <span > <input name="clear" type="hidden" value="true" /> <input id="password" name="password" class="text" type="password" onkeydown="if((e=window.event||event) && e.keyCode == 13 && $('#user').val() && $('#password').val()) $('#login_button').trigger('click');"/> </span> </label> <div id="non_script_login"> <label for="server_select" id="server_select_label"> <strong >Server:</strong> <select id="server_select" class="server_select" name="server" > <option value="de" >de Server</option> <option value="es" >es Server</option></select> </label> <input type="submit" id="login_button" value="Login"/> </div> <div id="js_login_button"> <a href="#" onclick="$('#login_button').trigger('click');" class="login_button"> <span class="button_left"></span> <span class="button_middle">Login</span> <span class="button_right"></span> </a> </div> <label for="cookie" style="text-align:right;"> <input id="cookie" type="checkbox" name="cookie" value="true" />Dauerhaft einloggen </label> </div> </form></div>
Jetzt wäre meine erste Frage, wie muss mein POST body aussehen? doch eigentlich etwa so:
user=MyUsername&password=MyPassword&Server=de&clear=true&cookie=true
? oder verstehe ich da was völlig falsch?
gesendet wird das dann in etwa so:
prepareConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + charset);
OutputStream output = null;
try {
output = connection.getOutputStream();
output.write(query.getBytes(charset));
output.flush();
wobei in prepareConnection natürlich noch eine Menge Kram steht. Cookies müssten theoretisch vielleicht auch sinnvoll funktionieren (habs noch nicht ausführlich getestet, sollte aber tun).