jsoup-提示java.net.SocketTimeoutException:Read timed out


使用Jsoup.connect(url).get()連接某網站時偶爾會出現

java.net.SocketTimeoutException:Read timed out異常。

 

原因是默認的Socket的延時比較短,而有些網站的響應速度比較慢,所以會發生超時的情況。

 

 

解決方法:

鏈接的時候設定超時時間即可。

doc = Jsoup.connect(url).timeout(5000).get();

 

5000表示延時時間設置為5s。

 

 

測試代碼如下:

 

1,不設定timeout時:

package jsoupTest;  
  
import java.io.IOException;  
  
import org.jsoup.*;  
import org.jsoup.helper.Validate;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  
  
public class JsoupTest {  
    public static  void main(String[] args) throws IOException{  
    String url = "http://www.weather.com.cn/weather/101010400.shtml";  
    long start = System.currentTimeMillis();  
    Document doc=null;  
    try{  
        doc = Jsoup.connect(url).get();  
    }  
    catch(Exception e){  
        e.printStackTrace();  
    }  
    finally{  
        System.out.println("Time is:"+(System.currentTimeMillis()-start) + "ms");  
    }  
    Elements elem = doc.getElementsByTag("Title");  
    System.out.println("Title is:" +elem.text());  
    }     
}  

 

有時發生超時:

java.net.SocketTimeoutException: Read timed out

 

 

2,設定了則一般不會超時

package jsoupTest;  
  
import java.io.IOException;  
  
import org.jsoup.*;  
import org.jsoup.helper.Validate;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  
  
public class JsoupTest {  
    public static  void main(String[] args) throws IOException{  
    String url = "http://www.weather.com.cn/weather/101010400.shtml";  
    long start = System.currentTimeMillis();  
    Document doc=null;  
    try{  
        doc = Jsoup.connect(url).timeout(5000).get();  
    }  
    catch(Exception e){  
        e.printStackTrace();  
    }  
    finally{  
        System.out.println("Time is:"+(System.currentTimeMillis()-start) + "ms");  
    }  
    Elements elem = doc.getElementsByTag("Title");  
    System.out.println("Title is:" +elem.text());  
    }     
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM