Исключение jsoup SocketTimeout

Jsoup выдает ошибку тайм-аута. Как я могу это исправить?

Строка кода, которая дает ошибку,

Document doc;
doc = Jsoup.connect("http://google.com").timeout(300000).get();

Исключение, которое я получаю, это

java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:633)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1322)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:412)
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:393)
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:159)
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:148)

person Mayank Jain    schedule 16.02.2013    source источник
comment
Можете ли вы получить доступ к google.com из вашего браузера? Вы за прокси?   -  person Neal    schedule 16.02.2013
comment
Есть решения для этого, но ни одно из них не является удовлетворительным   -  person Mayank Jain    schedule 17.02.2013


Ответы (2)


Я думаю, что вы находитесь за прокси. Вы можете попробовать следующее, если знаете данные своего прокси:

System.setProperty("http.proxyHost", "147.167.10.2");//replace with your proxy host
System.setProperty("http.proxyPort", "8080");//replace with your proxy port
Document doc = Jsoup.connect("http://google.com").get();
person 1218985    schedule 18.02.2013

У меня такая же проблема с jsoup 1.7.3.

Похоже, что в Jsoup есть ошибка, о чем свидетельствует следующий код (скопированный из моего приложения, но не протестированный, поэтому, возможно, эта ошибка не всегда воспроизводима):

Document doc;
URLConnection con = new URL("http://google.com").openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String html;
while ((html = reader.readLine()) != null) {
    System.out.println(url + ": "+ html);
}
doc = Jsoup.connect("http://google.com").timeout(300000).get();
person Daniel    schedule 01.07.2014