2011-03-17 111 views
4

我想了解更多關於HTMLunit和做一些測試的時刻。我想獲得基本的信息,如本網站頁面標題和文本:爲什麼HTMLunit不能在這個https網頁上工作?

https://....com(除去完整的URL,重要的是,它爲https)

我使用的代碼是這樣的,這是工作罰款其他網站:

final WebClient webClient = new WebClient(); 
    final HtmlPage page; 
    page = (HtmlPage)webClient.getPage("https://medeczane.sgk.gov.tr/eczane/login.jsp"); 
    System.out.println(page.getTitleText()); 
    System.out.println(page.asText()); 

爲什麼我不能得到這個基本信息?如果是因爲安全措施,具體是什麼,我可以繞過它們嗎?謝謝。

編輯:嗯代碼停止工作後webclient.getpage(); ,test2沒有寫入。所以我無法檢查頁面是否爲空。

final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2); 
    final HtmlPage page; 
    System.out.println("test1"); 
    try { 
     page = (HtmlPage)webClient.getPage("https://medeczane.sgk.gov.tr/eczane/login.jsp"); 
     System.out.println("test2"); 
+0

當您運行它時會發生什麼? 「頁面」爲空嗎? – DaveH 2011-03-17 08:20:49

+0

如果「test2」沒有被寫入,看起來可能是getWebPage引發了一個異常 - 你能看到它在你的catch塊中是什麼嗎? – DaveH 2011-03-17 09:11:28

回答

10

我加入這行代碼解決了這個之前嘗試

webClient.setAuthentication(realm,username,password);

webClient.setUseInsecureSSL(true); 

它被廢棄禁用安全SSL方式。在當前的HtmlUnit版本中,您必須執行以下操作:

webClient.getOptions().setUseInsecureSSL(true); 
1

我認爲這是一個身份驗證問題 - 如果我在Firefox中訪問該頁面,我會得到一個登錄框。

呼叫的GETPAGE()

+0

登錄需要編寫驗證碼,所以我認爲這不起作用。有沒有辦法將會話信息從瀏覽器傳輸到我的htmlunit程序?這樣我就可以從瀏覽器登錄並自動使用htmlunit登錄。 – 2011-03-17 08:35:57

相關問題