我有以下代码:
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://www.myland.co.il/%D7%9E%D7%97%D7%A9%D7%91-%D7%94%D7%A9%D7%A7%D7%99%D7%94");
Run Code Online (Sandbox Code Playgroud)
代码失败,出现com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException:404找不到http://www.myland.co.il/Scripts/swfobject_modified.js
我确实在控制台输出中看到了我感兴趣的HTML页面.有没有办法来抑制异常并获得一个Html页面呢?该页面在真实浏览器中正确加载.
是的,您可以使用setThrowExceptionOnFailingStatusCode来忽略失败的状态代码,例如;
WebClient webClient = new WebClient();
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
HtmlPage page = webClient.getPage("http://www.myland.co.il/%D7%9E%D7%97%D7%A9%D7%91-%D7%94%D7%A9%D7%A7%D7%99%D7%94");
Run Code Online (Sandbox Code Playgroud)
默认值通常为true,这会给出您正在描述的错误.
编辑:以防万一你运行旧版本,HtmlUnit早于2.11版本,setThrowExceptionOnFailingStatusCode可以在WebClient本身而不是返回的选项上调用getOptions().在2.11或更高版本中,您应该getOptions()如上使用.
| 归档时间: |
|
| 查看次数: |
2971 次 |
| 最近记录: |