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

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

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 = "//www.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 = "//www.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());
 } 
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩欧美一级大片 | 四虎最新紧急更新地址 | 午夜欧美精品久久久久久久久 | 星星动漫在线观看免费 | 美女视频黄a | 亚洲欧美日韩天堂 | 亚洲欧美精品久久 | 欧美性一区二区三区 | 亚洲欧美日韩一区成人 | 国产一区在线播放 | 九色PORNY蝌蚪视频首页 | 午夜欧美精品久久久久久久久 | 99精品视频免费观看 | 国产色在线观看 | 护士xxxx| 美国美女hd18 | 麻豆网站在线看 | 国内精品 大秀视频 日韩精品 | 亚洲第一区欧美日韩精品 | 36美女厕所撒尿全过程 | 欧美综合亚洲图片综合区 | 国产99精品成人免费视频 | 欧美精品三区 | 狠狠干快播 | 啾咪成人漫画免费 | 国产欧美一区视频在线观看 | 色吧五月婷婷 | 女被男啪到哭 | 草草影院免费 | 第一福利在线观看永久视频 | 黑人女性猛交xxxxxⅹxx | 免费免费啪视频在线观播放 | 免费一级片在线 | 欧美午夜精品久久久久久黑人 | 美女脱了内裤张开腿亲吻男生 | yjsp妖精视频在线观看免费 | 日韩一卡2卡3卡新区网站 | 国产女乱淫真高清免费视频 | 多人群p全肉小说 | a级成人毛片免费图片 | 91日本在线观看亚洲精品 |