Je reçois un SocketTimeoutException lorsque j'essaie d'analyser beaucoup de documents HTML à l'aide Jsoup.
Par exemple, j'ai une liste de liens :
<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>
Pour chaque lien, je lis un document lié à l'URL (de l'attribut href) pour obtenir d'autres éléments d'information dans ces pages.
Donc, je peux imaginer que cela prend beaucoup de temps, mais comment faire pour arrêter cette exception?
Voici la toute trace de la pile:
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)
Merci à vous les copains!
sp00m
EDIT:
Hum... Désolé, vient de trouver la solution:
Jsoup.connect(url).timeout(0).get();
Espérons que pourrait être utile pour quelqu'un d'autre... :)