国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

java使用Jsoup連接網(wǎng)站超時(shí)的解決方法

2019-11-26 15:53:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天做了一個(gè)Jsoup解析網(wǎng)站的項(xiàng)目,使用Jsoup.connect(url).get()連接某網(wǎng)站時(shí)偶爾會(huì)出現(xiàn)
java.net.SocketTimeoutException:Read timed out異常。
原因是默認(rèn)的Socket的延時(shí)比較短,而有些網(wǎng)站的響應(yīng)速度比較慢,
所以會(huì)發(fā)生超時(shí)的情況。

解決方法

鏈接的時(shí)候設(shè)定超時(shí)時(shí)間即可。
doc = Jsoup.connect(url).timeout(5000).get();
5000表示延時(shí)時(shí)間設(shè)置為5s。

測(cè)試代碼如下:
1,不設(shè)定timeout時(shí):

復(fù)制代碼 代碼如下:

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.survivalescaperooms.com";
 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());
 } 
}

有時(shí)發(fā)生超時(shí):
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 設(shè)定了則一般不會(huì)超時(shí)

復(fù)制代碼 代碼如下:

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.survivalescaperooms.com";
 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());
 } 
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘德县| 兴文县| 扎兰屯市| 山阴县| 景谷| 青川县| 龙岩市| 法库县| 永善县| 邮箱| 来安县| 衡东县| 莱西市| 仙游县| 依安县| 达拉特旗| 万州区| 九江县| 和田县| 襄樊市| 大化| 牡丹江市| 任丘市| 定南县| 西华县| 高州市| 仁怀市| 芒康县| 延安市| 贵南县| 湾仔区| 苗栗市| 五指山市| 凤山县| 民县| 宜川县| 靖西县| 马关县| 东兰县| 金华市| 滁州市|