使用HtmlUnit时找不到404

时间:2013-02-09 08:32:02

标签: htmlunit

我有以下代码:

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页面呢?该页面在真实浏览器中正确加载。

1 个答案:

答案 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()