【发布时间】:2016-03-22 11:44:56
【问题描述】:
我正在尝试使用 Jsoup 解析一些 url,但我收到此错误:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
这是我的代码:
public Elements getLinks(String link){
Document doc = null;
Elements links = null;
try {
doc = Jsoup.connect(link)
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
.referrer("http://www.google.com")
.timeout(5000) //it's in milliseconds, so this means 5 seconds.
.get();
links = doc.select("a[href]");
}
catch (ConnectException e){
e.printStackTrace();
}
catch (UnsupportedMimeTypeException e){
e.printStackTrace();
}
catch (SocketTimeoutException e){
e.printStackTrace();
}
catch (SSLException e) {
e.printStackTrace();
}
catch (IOException e) {
if(e.getCause() instanceof SocketTimeoutException) {
try {
throw new SocketTimeoutException();
} catch (SocketTimeoutException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
}
return links;
}
我有一个 ConnectException 的 catch 部分,但我的程序停止了。有什么想法可以解决这个问题吗?
【问题讨论】:
-
那么你期待什么?服务器拒绝了连接,您对此无能为力。你应该能够连接到它吗?你有正确的协议(
http/https)吗? -
我不想连接,我只想让我的程序不要停止。我不在乎有损坏的 URL。
-
这个方法不会停止你的程序。它只会打印堆栈跟踪并返回 null。如果你的程序的其余部分不能处理这个问题,那么问题就在那里。
-
谢谢,就是这个问题
-
请使用
multicatch使您的代码更具可读性。
标签: java jsoup connectexception