我有以下代码:
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");
代码以com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException失败:http://www.myland.co.il/Scripts/swfobject_modified.js未找到404
我确实在控制台输出中看到了我感兴趣的HTML页面。有没有办法来压制异常并获得一个Html页面呢?该页面在真实浏览器中正确加载。
答案 0 :(得分:8)
是的,您可以使用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");
默认值通常为true,这会给出您正在描述的错误。
编辑:如果您运行的是旧版本,并且版本的HtmlUnit早于2.11,则可以在WebClient本身上调用setThrowExceptionOnFailingStatusCode
,而不是getOptions()
返回的选项。在2.11或更高版本中,您应该使用上述getOptions()
。