从我的机器=>启动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。
任何想法,问题可能来自哪里?提前致谢。
我只是跑这个代码,并返回你的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;
}