2011-03-17 70 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

相关问题