Ich habe kämpfen in this zur Login-Seite, damit ichAnmeldung Erfolglos in diese Seite mit Jsoup
Seite für eine den privaten
learn.sun.ac.za/my kratzen konnte jetzt gut. Ich habe mehrere SO-Posts durchsucht und versucht, den Ratschlag von beiden auf keinen Effekt anzuwenden.
Versuch 1
String url = "https://sso-prod.sun.ac.za/cas/login?service=http%3A%2F%2Flearn.sun.ac.za%2Flogin%2Findex.php"; String userAgent = "Mozilla/5.0"; Connection.Response response = Jsoup.connect(url) .userAgent(userAgent) .method(Connection.Method.GET) .execute(); response = Jsoup.connect(url) .userAgent(userAgent) .cookies(response.cookies()) .data("action", "login") .data("username", "MYUSERNAME") .data("password", "MYPASSWORD") .method(Connection.Method.POST) //.followRedirects(true) .execute(); Document doc = Jsoup.connect("http://learn.sun.ac.za/my") .cookies(response.cookies()) .userAgent(userAgent) .get(); System.out.println(doc.title());
Ausgabe: "Single Sign on | Korporation"
darauf hinweist, dass es nicht anmelden.
Von der Beratung in anderen Beiträgen überwacht ich den Verkehr über Chrom und hinzugefügt alle Header von dort auf den Code
String url = "https://sso-prod.sun.ac.za/cas/login?service=http%3A%2F%2Flearn.sun.ac.za%2Flogin%2Findex.php"; String userAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"; Connection.Response response = Jsoup.connect(url) .userAgent(userAgent) .method(Connection.Method.GET) .execute(); response = Jsoup.connect(url) .userAgent(userAgent) .cookies(response.cookies()) .header("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8") .header("accept-encoding", "gzip, deflate") .header("accept-language", "en-US,en;q=0.8") .header("cache-control", "max-age=0") .header("connection", "keep-alive") .header("content-length", "114") .header("content-type","application/x-www-form-urlencoded") .header("dnt", "1") .header("host", "sso-prod.sun.ac.za") .header("origin", "https://sso-prod.sun.ac.za") .header("referer", "https://sso-prod.sun.ac.za/cas/login?service=http%3A%2F%2Flearn.sun.ac.za%2Flogin%2Findex.php") .header("upgrade-insecure-requests", "1") .data("action", "login") .data("username", "MYUSERNAME") .data("password", "MYPASSWORD") .data("lt", "LT-3042474-9t3oldTU1253G6HVqFffHgMWxnYXdg") .data("execution", "e1s1") .data("_eventId", "submit") .method(Connection.Method.POST) //.followRedirects(true) .execute(); Document doc = Jsoup.connect("http://learn.sun.ac.za/my") .cookies(response.cookies()) .userAgent(userAgent) .get(); System.out.println(doc.title());
die das gleiche Ergebnis hatte. Was ich getan habe, war, den tatsächlichen HTML-Code auszudrucken und festgestellt, dass es keine Login-Fehlermeldung irgendwo im Code gab, was bedeutet, dass ich irgendwo vermasselt und nicht das Formular tatsächlich eingereicht?
löste das Problem! – SimpleJack