Login auf website mit java
Ich würde gerne login auf eine website mit java. Ich benutze die org.apache.http und ich schon geschrieben
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://accounts.google.com/ServiceLogin? service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F%3Fhl%3Dsl%26tab%3Dwm%26ui%3Dhtml%26zy%3Dl&bsv=llya694le36z&scc=1<mpl=default&");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("vb_login_username",
"XXX"));
nameValuePairs.add(new BasicNameValuePair("vb_login_password",
"XXX"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
Sendet es die post-Formular korrekt, die ich getestet habe, aber ich kann immer noch nicht einloggen. Die website, die ich anmelden möchten, ist http://www.xtratime.org/forum/ Irgendwelche Ideen für dieses oder gibt es einen anderen Weg?
Warum gibt es all diese Räume nach der
Die URL in deinem code nicht Mathe mit der URL der Ziel-website. Ist das nicht nur ein Ablenkungsmanöver?
Was ist in der HttpResponse? Ist der response-code 200? Wird der zurückgegebene HTML-noch die login-Seite?
Ich bin, sorry, ich vergaß ändern Sie die URl zu den Ziel-website. Den zurückgegebenen html-Code ist immer noch der login-Seite.
Verwenden Sie Wireshark mit dem Filter "ip.addr == putHereIpOfServer && http", um herauszufinden, was in Ihrem login-Anfrage, und wie es schiebt, wenn Sie sich normal einloggen. Diese mir geholfen meine Probleme mit der Anmeldung.
?
in der url?Die URL in deinem code nicht Mathe mit der URL der Ziel-website. Ist das nicht nur ein Ablenkungsmanöver?
Was ist in der HttpResponse? Ist der response-code 200? Wird der zurückgegebene HTML-noch die login-Seite?
Ich bin, sorry, ich vergaß ändern Sie die URl zu den Ziel-website. Den zurückgegebenen html-Code ist immer noch der login-Seite.
Verwenden Sie Wireshark mit dem Filter "ip.addr == putHereIpOfServer && http", um herauszufinden, was in Ihrem login-Anfrage, und wie es schiebt, wenn Sie sich normal einloggen. Diese mir geholfen meine Probleme mit der Anmeldung.
InformationsquelleAutor Borut Flis | 2011-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bevor die Seite senden, Kodieren Sie das Kennwort (
onsubmit
). Sie sollten das gleiche tun in den code.Den Wert der
action
Attribut stimmt nicht überein mit dem code (https://accounts.google.com...
). Senden Sie die post-Anforderung an dielogin.php?do=login
.Und es gibt eine Menge von versteckten Feldern:
Senden Sie diese Parameter auch.
Es ist in der Regel einfacher zu installieren, ein HttpFox Firefox-Add-on ein überprüfen die den Antrag für die post-Parameter als die Dekodierung der javascript.
Mein browser sendet diese post-Parameter (erfasst mit HttpFox, das Passwort ist
pass1
):Bearbeiten:
Folgende Werke für mich, ich kann das "Danke für die Anmeldung" Meldung in der gedruckten html-code:
Ich denke, Sie sollten. Überprüfen Sie meine aktualisierte Antwort. Ich schlage vor, mit HttpFox, wenn Sie planen, verwenden Sie nur ein Passwort.
vielen Dank für die Hilfe, aber immer noch nicht funktioniert
Überprüfen Sie die Updates und posten Sie Ihre neue codes, wenn es noch nicht funktioniert.
danke es funktioniert jetzt:)
InformationsquelleAutor palacsint
Ich schlage vor, Sie verwenden htmlunit:
In einem gui/browser based testing-api, die ich öffnen kann nur eine Webseite, denn es gibt nur einen Maus-Zeiger in einem computer zu tun zu klicken. Also, kann ich mehrere tests ausführen, die auf der gleichen website mit html-unit, da diese keine gui hat und vermutlich nicht die Maus bewegen ? Danke.
InformationsquelleAutor Eng.Fouad