[英]Exception in thread "main" java.net.SocketTimeoutException: Read timed out in jsoup
[英]Using jsoup getting java.net.SocketTimeoutException: Read timed out exception
使用 jsoup 獲取 java.net.SocketTimeoutException:讀取超時異常
private static void getNiftyFutureOIReader() {
String url = "https://www1.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuoteFO.jsp?underlying=NIFTY&instrument=FUTIDX&type=-&strike=-&expiry=30JAN2020";
Document doc = null;
try {
doc = Jsoup.connect(url).timeout(15*1000).get();
Element content = doc.getElementById("responseDiv");
String jsonCont=content.html();
System.out.println(jsonCont);
} catch (IOException e) {
e.printStackTrace();
}
}
我正在使用 Jsoup 調用網站 url 並讀取其內容,使用 jsoup 獲取 java.net.SocketTimeoutException:讀取超時異常
error log
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.security.ssl.InputRecord.readFully(Unknown Source)
at sun.security.ssl.InputRecord.read(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
at sun.security.ssl.AppInputStream.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.HttpClient.parseHTTPHeader(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:750)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:722)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:306)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:295)
at code.test.BankNiftyFutureOIReader.getNiftyFutureOIReader(BankNiftyFutureOIReader.java:19)
at code.test.BankNiftyFutureOIReader.main(BankNiftyFutureOIReader.java:53)
基於這個答案, JSoup UserAgent,如何正確設置? ,也許可以試試網站是否正在檢查 UserAgent 或其他標頭以驗證您不是機器人。 我希望“實時報價”網頁有這樣的對策。
Response response= Jsoup.connect("https://www1.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuoteFO.jsp?underlying=NIFTY&instrument=FUTIDX&type=-&strike=-&expiry=30JAN2020")
.ignoreContentType(true)
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
.referrer("https://www.nseindia.com")
.timeout(15_000)
.followRedirects(true)
.execute();
// TODO: verify Response status code here!
Document doc = response.parse();
問題可能是由於
確保您已連接到互聯網。 嘗試在瀏覽器中打開相同的 URL,看看它是否打開了頁面。 或從您的 VM 能夠訪問該 url 簡單 curl / wget 方法
在獲取文檔之前指定更多 Jsoup 連接超時,如下所示。
參考: https : //www.javacodeexamples.com/jsoup-sockettimeoutexception-read-timed-out-connect-timed-out-fix/775
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.