Hallo
Ich versuche zum ersten mal einen kleinen Clienten fuer eine Webseite zu bauen. Dazu muss ich mich aber erst einmal einloggen, der HTML code auf der loginseite sieht so aus:
Jetzt habe ich folgendes versucht, leider komme ich immer zur login page zurueck. Der login geht also nicht:
Ich schaetze mal ich habe da mit den postMethod0.addParameter was vergessen oder verkehrt gemacht. Hoffe ihr koennt mir helfen.
Mfg Lord-carlos
Edit:
Ich habe mir das jetzt nochmal mit einem firefox plugin angeguckt, der post sieht so aus im orginal:
POST /login.php returnto=%2F&take_login=1&username=XXX&password=XXXX&login.x=36&login.y=16
Habe mein code daraufhin folgendermaßen geaendert:
Geht aber immer noch nicht
Ich versuche zum ersten mal einen kleinen Clienten fuer eine Webseite zu bauen. Dazu muss ich mich aber erst einmal einloggen, der HTML code auf der loginseite sieht so aus:
HTML:
<form method="post" action="login.php">
<input type="hidden" name="returnto" value="/" />
<input type="hidden" value="1" name="take_login" />
<div id="username"><input type="text" name="username" id="username_input" /><label for="username_input"></label></div>
<div id="password"><input type="password" name="password" id="password_input" /><label for="password_input"></label></div>
<div id="log_out"><input type="checkbox" name="logout" value="yes" id="log_out_input" /><label for="log_out_input"></label></div>
<div id="log_in"><input type="image" name="login" id="log_in_input" src="images/login/log_in.png" /></div>
</form>
Jetzt habe ich folgendes versucht, leider komme ich immer zur login page zurueck. Der login geht also nicht:
Java:
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
/**
*
* @author carlos
*/
public class XXX {
private static String loginURL = "http://www.xxx.tld/login.php";
private static String browseURL = "http://www.xxx.tld/browse.php";
public XXX() {
}
public void httpLogin() {
try {
// Client erstellen
HttpClient client = new HttpClient();
// Post-Methode zum Einloggen erstellen
PostMethod postMethod0 = new PostMethod(loginURL);
postMethod0.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
postMethod0.addParameter("username", "superman");
postMethod0.addParameter("password", "penispenislol");
postMethod0.addParameter("logout", "no");
client.executeMethod(postMethod0);
postMethod0.releaseConnection();
GetMethod getMethod = new GetMethod(browseURL);
getMethod.setRequestHeader("Referer", loginURL);
getMethod.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
client.executeMethod(getMethod);
String output = getMethod.getResponseBodyAsString();
System.out.println(output);
if(output.contains("Login page")){
System.out.println("#### it fails :(");
} else {
System.out.println("#### it works :)");
}
getMethod.releaseConnection();
} catch (IOException ex) {
Logger.getLogger(HDbits_ro.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Ich schaetze mal ich habe da mit den postMethod0.addParameter was vergessen oder verkehrt gemacht. Hoffe ihr koennt mir helfen.
Mfg Lord-carlos
Edit:
Ich habe mir das jetzt nochmal mit einem firefox plugin angeguckt, der post sieht so aus im orginal:
POST /login.php returnto=%2F&take_login=1&username=XXX&password=XXXX&login.x=36&login.y=16
Habe mein code daraufhin folgendermaßen geaendert:
Java:
postMethod0.addParameter("returnto", "%2F");
postMethod0.addParameter("take_login", "1");
postMethod0.addParameter("username", "XXXX");
postMethod0.addParameter("password", "XXXX");
postMethod0.addParameter("login.x", "36");
postMethod0.addParameter("login.y", "16");
Geht aber immer noch nicht
Zuletzt bearbeitet: