我在Jsoup中得到一个SocketTimeoutException:读取超时

当我尝试使用Jsoupparsing大量HTML文档时,我得到一个SocketTimeoutException。
例如,我得到了一个链接列表:

<a href="www.domain.com/url1.html">link1</a> <a href="www.domain.com/url2.html">link2</a> <a href="www.domain.com/url3.html">link3</a> <a href="www.domain.com/url4.html">link4</a> 

对于每个链接,我parsing链接到该URL的文档(来自href属性)以获取这些页面中的其他信息。
所以我可以想象它需要很多时间,但是如何closures这个exception呢?
这是整个堆栈跟踪:

 java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.HttpURLConnection.getResponseCode(Unknown Source) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:381) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143) at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132) at app.ForumCrawler.crawl(ForumCrawler.java:50) at Main.main(Main.java:15) 

谢谢哥们!

编辑:哼…对不起,刚find解决办法:

 Jsoup.connect(url).timeout(0).get(); 

希望对别人有用… 🙂

我想你可以做

 Jsoup.connect("...").timeout(10*1000).get(); 

它将超时设置为10秒

好的 – 所以,我试图把这个提供给MarcoS的答案,但编辑被拒绝了。 尽pipe如此,以下信息可能对未来访客有用:

根据javadocs , org.jsoup.Connection的默认超时 org.jsoup.Connection是30秒。

如前所述,可以使用timeout(int millis)

另外,由于OP在编辑中注释,这也可以使用timeout(0)来设置。 但是,正如javadocs的状态:

零超时被视为无限超时。

将超时方法设置为以下值。

 Jsoup.connect("http://www.examplpe.com").timeout(10*1000).get(); 

这会将超时设置为10秒。

从jsoup连接时设置超时。