从某些服务器某些URL JSoup超时

问题描述 投票:0回答:1

从我的机器=>启动JSoup脚本工作正常。

从我的远程服务器=>启动相同的脚本引发java.net.SocketTimeoutException: connect timed out错误。

我重现该问题只与某些URL。我试图从这个远程服务器上启动其它网页相同的脚本和它去确定。

我的脚本:

private Document getDom(String root){
    Document dom = null;
    try {
        dom = Jsoup.connect(root).get();
    } catch (IOException e){
        System.out.println(e);
        try {
            dom = Jsoup.parse(new URL(root).openStream(), "UTF-8", root);
        } catch (IOException e2){
            System.out.println(e2);
        }
    }
    return dom;
}

root是目标URL,在我的例子https://hightest.nc/sitemap.xml

任何想法,问题可能来自哪里?提前致谢。

dom jsoup
1个回答
0
投票

我只是跑这个代码,并返回你的XML对我来说,当我固定的抓block.The第一个catch似乎没有正确关闭。在连接超时另一个潜在问题是你没有添加的userAgent。试试这个代码块下面,我已经测试,它为我工作。

从服务器你也可以尝试和调整的连接超时,看看是否会为你工作。尝试或许它调整到一个更高的超时。 .timeout(7000)

 private Document getDom(String root){
        Document dom = null;
        try {
            dom = Jsoup.connect(root)
                    .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) 
           AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36")
                    .get();
        } catch (IOException e) {
            System.out.println(e);
        }
            try {
                dom = Jsoup.parse(new URL(root).openStream(), "UTF-8", root);

            } catch (IOException e2){

                System.out.println(e2);
            }

          return dom;

        }
© www.soinside.com 2019 - 2024. All rights reserved.