2017-08-26 2 views
-2

Ich versuche, HTMLUnit zu verwenden, um auf den HTML-Code einer Website mit einem Benutzernamen und einem Kennwort zuzugreifen. https://186.springfield.k12.il.us/IS3/ ist, wo meine Schule Noten schreibt. Ich kenne Java nur und ich bin damit nicht sehr gut, und das ist meine erste Frage. Ich würde jemanden schätzen, der mir hilft, diese Arbeit zu machen. Hier ist, was ich habe:Versucht, auf sichere Website mit Java zuzugreifen

public static void main(String[] args) { 
    WebClient webClient = new WebClient(); 
    try { 
     HtmlPage page = (HtmlPage) webClient 
       .getPage("https://186.springfield.k12.il.us/IS3/"); 
     HtmlForm form = page.getFormByName("login_form"); 
     form.getInputByName("loginuseridvar").setValueAttribute("myusername"); 
     HtmlInput passWordInput = form.getInputByName("password"); 
     passWordInput.removeAttribute("disabled"); 
     passWordInput.setValueAttribute("mypassword"); 

     page = form.getInputByValue("Log On").click(); 

     System.out.println(page.asText()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     webClient.close(); 
    } 
} 
+1

was ist Ihre Frage? –

+1

Bitte klären Sie Ihr spezifisches Problem oder fügen Sie weitere Details hinzu, um genau das hervorzuheben, was Sie benötigen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Weitere Informationen zur Klärung dieser Frage finden Sie auf der Seite [How to Ask] (https://stackoverflow.com/help/how-to-ask) –

+0

Ich versuche, es zum Laufen zu bringen, ich kann nicht verstehen, warum es nicht funktioniert . –

Antwort

0

Versuchen Sie, diese

try (WebClient webClient = new WebClient()) { 
     // page has an js error (same as with real browsers) 
     // ignore these errors 
     webClient.getOptions().setThrowExceptionOnScriptError(false); 

     HtmlPage page = (HtmlPage) webClient.getPage("https://186.springfield.k12.il.us/IS3/"); 
     // System.out.println(page.asXml()); 

     // form has no name, we use the first one 
     HtmlForm form = page.getForms().get(0); 
     form.getInputByName("loginuseridvar").type("myusername"); 

     // there seem to be some (async) magic that clears the password field 
     // force this magic and wait until done otherwise the js will clear the password 
     // after we typed it in and before the click will be processed 
     form.getInputByName("password").focus(); 
     webClient.waitForBackgroundJavaScript(100); 
     form.getInputByName("password").type("mypassword"); 

     page = form.getInputByName("login").click(); 
     webClient.waitForBackgroundJavaScript(1000); 

     System.out.println(page.asXml()); 
    } 

Hoffentlich werden die Kommentare, die Sie wird dazu beitragen, ein wenig zu verstehen, was los ist. Da ich keinen echten Account habe, kann ich nur den Fehlerfall testen. Wenn Sie immer noch Probleme haben, müssen Sie mir einige Zugangsdaten per Mail senden.

BTW: die Seite selbst hat einige Fehler (gebrochenes Javascript, XHTML Syntaxfehler)

Verwandte Themen