一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java使用Jsoup連接網站超時的解決方法

java使用Jsoup連接網站超時的解決方法

2019-10-21 12:38java教程網 Java教程

jsoup是一個非常好的解析網頁的包,用java開發的,提供了類似DOM,CSS選擇器的方式來查找和提取文檔中的內容,提取文檔內容時會出現超時的情況,解決方法可看下文

今天做了一個Jsoup解析網站的項目,使用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 = "//m.ythuaji.com.cn";
 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
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
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.ChunkedInputStream.fastRead(Unknown Source)
at sun.net.www.http.ChunkedInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at org.jsoup.helper.DataUtil.readToByteBuffer(DataUtil.java:113)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:447)
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)
at jsoupTest.JsoupTest.main(JsoupTest.java:17)
Time is:3885ms
Exception in thread "main" java.lang.NullPointerException
at jsoupTest.JsoupTest.main(JsoupTest.java:25)

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 = "//m.ythuaji.com.cn";
 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());
 } 
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: а天堂中文最新版在线 | 国产手机在线观看 | 美女黄金大片视频免费看 | 欧美老肥妇bbbw | 午夜亚洲 | sss视频在线精品 | 国产一区国产二区国产三区 | 热99re久久精品国产首页 | 午夜免费啪视频观看视频 | 国产成人精品一区二三区 | 亚洲va欧美va天堂v国产综合 | 亚洲精品卡1卡二卡3卡四卡 | 久久re这里精品23 | 欧美在线观看网址 | 亚洲视频免费在线看 | www.男人| 日本护士撒尿xxxx欧美 | 99国产国人青青视频在线观看 | 小早川怜子亚洲综合中文字幕 | 大胸美女被c | 亚洲精品免费视频 | 亚洲免费闲人蜜桃 | ck7788免费视频 | 日本68xxxxxxxxx59 日本 视频 在线 | 国产成+人+综合+欧美 亚洲 | 青草视频免费观看 | 国产不卡视频 | 亚洲国产在线播放 | xxoo好深好爽动态 | 天天舔天天射 | 日韩伦理在线观看 | 精品日本一区二区 | zoz.zzz色| 嫩草视频在线观看免费 | 欧美精品99久久久久久人 | 欧美男女爱爱视频 | 亚洲国产精品二区久久 | 欧美人xxxxxbbbb| 亚洲夜色夜色综合网站 | 九色PORNY真实丨国产免费 | 1769在线观看 |