java - 为什么 htmlunit getPage 会因 nosuchmenthod 产生此问题

标签 java html web-scraping webclient htmlunit

我在连接到网站时遇到此错误。 Website

java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.toString(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/String;
at com.gargoylesoftware.htmlunit.WebResponse.getContentAsString(WebResponse.java:242)

我正在使用 htmlunit 2.29 并在测试时

    WebClient client;
    HtmlPage homePage;
    Document doc = null;
    try {
        client = new WebClient(BrowserVersion.FIREFOX_52);
        client.getOptions().setUseInsecureSSL(true);
        client.setAjaxController(new NicelyResynchronizingAjaxController());
        client.getOptions().setThrowExceptionOnFailingStatusCode(false);
        client.getOptions().setThrowExceptionOnScriptError(false);
        client.waitForBackgroundJavaScript(20000);
        client.waitForBackgroundJavaScriptStartingBefore(20000);
        client.getOptions().setCssEnabled(false);
        client.getOptions().setJavaScriptEnabled(true);
        client.getCache().setMaxSize(0);

        homePage = client.getPage(url);

我已经在单独的新类(class)中测试了它。它正常工作。 但是在其他项目中使用这个(client.getPage(url);)功能 block 时,
它给出
IOUtils.toString 类中出现 noSUchMethodError。

这里可能缺少什么?

enter image description here

最佳答案

通常这是因为依赖关系被破坏。确保类路径中的 apache.commons.io 版本正确,并检查是否有重复项。

顺便说一句:

client.waitForBackgroundJavaScript(20000);
client.waitForBackgroundJavaScriptStartingBefore(20000);

没有选项,在客户端设置期间执行这些调用是没有用的。在使用 c&p 之前,请阅读 stackoverflow 上的全部帖子。

关于java - 为什么 htmlunit getPage 会因 nosuchmenthod 产生此问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48820650/

相关文章:

javascript - 如何仅在 Bootstrap 选项卡处于事件状态时加载它?

java - 在Java中将映射的键和值解析为一个大字符串

java - 关于JFrame、JLabel和ContentPane概念的问题

java - 将一个节点类型字符串与另一个节点类型字符串进行比较的二叉搜索树

Windows Server 2003 中的 Java swing 错误

javascript - 将绘制到 Canvas 上的所有内容偏移 0.5 像素的好方法?

python - 使用 Python Beautifulsoup 抓取天使列表配置文件描述

css - Puppeteer - 无法在酒店网站中拉出正确的 CSS 选择器

html - 如何使用 getELementsbyTagName 修复 'for each' 迭代?

java - 从 RecyclerView 中的 ViewHolder 中删除小部件