2017-08-26 7 views
-2

私はHTMLUnitを使用して、ユーザー名とパスワードでウェブサイトのHTMLにアクセスしようとしています。 https://186.springfield.k12.il.us/IS3/は私の学校が投稿する学年です。私はJavaだけしか知っていません。私はそれをよく理解していません。これが私の最初の質問です。私はこの仕事をするのを助ける誰かに感謝します。ここでは、私が持っているものです。Javaで安全なウェブサイトにアクセスしようとしています

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

あなたの質問は何ですか? –

+1

具体的な問題を明確にしたり、詳細を追加して必要なものを正確に強調してください。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にするための[ヘルプ]ページ(https://stackoverflow.com/help/how-to-ask)を参照してください。 –

+0

私はそれを動作させようとしています。 。 –

答えて

0

この

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()); 
    } 

を試してみてうまくいけば、コメントはビットが起こっているかを理解するのに役立ちます。私は本当のアカウントを持っていないので、私はエラーの場合だけをテストすることができます。 まだ問題がある場合は、プライベートメールでいくつかの証明書を送ってください。

ところで:ページ自体にいくつかの欠陥があります(JavaScriptの破損、XHTML構文エラー)

関連する問題