2014-01-07 72 views
1

我正在使用Eclipse的一個簡單的Jsoup程序,但是當我嘗試運行該程序並向我的程序添加更多步驟時,如java.net.SocketTimeoutException: connect timed outEclipse中的Java Jsoup程序引發java.net.SocketTimeoutException:連接超時

此代碼工作正常:

public static void main(String[] args) { 
    Document doc; 
    try { 
     doc = Jsoup.connect("http://google.com").get(); 
     System.out.println("doc is = " + doc); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

,我也得到了一些XML數據作爲輸出。

現在,當我這個程序更改爲:

public static void main(String[] args) { 
    Document doc; 
    try { 
     // need http protocol 
     doc = Jsoup.connect("http://google.com").get(); 
     System.out.println("doc is = " + doc); 

     // get page title 
     String title = doc.title(); 
     System.out.println("title : " + title); 

     // get all links 
     Elements links = doc.select("a[href]"); 
     for (Element link : links) { 
      // get the value from href attribute 
      System.out.println("\nlink : " + link.attr("href")); 
      System.out.println("text : " + link.text()); 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

然後我得到的例外是:java.net.SocketTimeoutException: connect timed out

看來我需要設置超時選項,請讓我知道我能做到這一點的蝕?

我剛纔提到的下方,職位,但仍面臨着同樣的問題,我也沒有任何代理之間訪問互聯網:

Sometimes java.net.SocketTimeoutException: Read timed out. Sometimes not

Exception in thread 「main」 java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)

回答

2

您可以指定超時雖然Connection

Connection connection = Jsoup.connect("http://google.com"); 
connection.timeout(5000); // timeout in millis 
doc = connection.get(); 
1

超時零被視爲無限超時。

Jsoup.connect("http://google.com").timeout(0).get(); 
+0

不錯,值得注意的是,雖然在** MOST **案件不建議。 – God

相關問題