Exception in thread "main" java.net.SocketTimeoutException: connect timed ou错误处理
今天做了一个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 = "http://www.jb51.net";
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 = "http://www.jb51.net";
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());
}
}
Exception in thread "main" java.net.SocketTimeoutException: connect timed ou错误处理的更多相关文章
- Java 控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”
1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLS ...
- xom报错 Exception in thread "main" java.net.UnknownHostException: file
Exception in thread "main" java.net.UnknownHostException: file at java.net.AbstractPlainSo ...
- Exception in thread "main" java.nio.channels.NotYetConnectedException
import java.nio.channels.AsynchronousServerSocketChannel; import java.nio.channels.AsynchronousSocke ...
- Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic_test_1219-2: 30010 ms has passed since batch creatio
代码如下 public static void producer1() throws ExecutionException, InterruptedException { Properties pro ...
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" ...
- Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
在学习CGlib动态代理时,遇到如下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.objectwe ...
- GUI学习中错误Exception in thread "main" java.lang.NullPointerException
运行时出现错误:Exception in thread "main" java.lang.NullPointerException 该问题多半是由于用到的某个对象只进行了声明,而没 ...
- 执行打的maven jar包时出现“Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes”
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for ...
- Exception in thread "main" java.lang.ExceptionInInitializerError
Exception in thread "main" java.lang.ExceptionInInitializerErrorCaused by: java.util.Missi ...
随机推荐
- C#访问和操作MYSQL数据库
这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作. 1.将MySql.Data.dll引用到你的项目中 下载地址:MyS ...
- Spark记录-Scala字符串
Scala字符串 在Scala中的字符串和Java中的一样,字符串是一个不可变的对象,也就是一个不能修改的对象.可以修改的对象,如数组,称为可变对象.字符串是非常有用的对象,在本节的最后部分,我们将介 ...
- pandas重置索引的几种方法探究
pandas重置索引的几种方法探究 reset_index() reindex() set_index() 函数名字看起来非常有趣吧! 不仅如此. 需要探究. http://nbviewer.jupy ...
- Jad查看源码
需要者两个文件:下载地址:http://pan.baidu.com/s/11qq4I 1,解压jar包 有两个文件 分别是net.sf.jadclipse_3.3.0 jad.exe 文件 2,找到m ...
- 【转】XMPP_3920_最靠谱的中文翻译文档
CHENYILONG Blog XMPP_3920_最靠谱的中文翻译文档 Fullscreen © chenyilong. Powered by Postach.io Blog
- struts2 中 Preparable 接口实现数据准备
今天才知道struts还有Preparable接口,实现此接口需要实现其prepare()方法,调用action中其他方法之前会先调用prepare()方法.此接口和方法可以用于初始化一些数据. 测试 ...
- 总结---Python中的面向对象!
面向对象这种编程的范式每个语言都是通用的,这里总结一下python的面向对象语法,主要包含以下几个方面! 1 基本语法 # 定义类 class Person(object): n = 10 # 类变量 ...
- linux网络编程--Circular Buffer(Ring Buffer) 环形缓冲区的设计与实现【转】
转自:https://blog.csdn.net/yusiguyuan/article/details/18368095 1. 应用场景 网络编程中有这样一种场景:需要应用程序代码一边从TCP/IP协 ...
- mac ssh 自动登陆设置
1.首先找到.ssh目录 一般在用户名目录下. ls -a查看 如果没有就重新创建一个 chennan@bogon :mkdir .ssh chennan@bogon 查看当前的 bogon:.ssh ...
- C#中的GetElementsByClassName方法
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public static class Spread { ...