我正在使用Eclipse编写一个简单的Jsoup程序,但是当我尝试运行该程序并向我的程序添加更多步骤时,我收到的错误为java.net.SocketTimeoutException: connect timed out
。
此代码可以正常工作:
public static void main(String[] args) {
Document doc;
try {
doc = Jsoup.connect("http://google.com").get();
System.out.println("doc is = " + doc);
} catch (IOException e) {
e.printStackTrace();
}
}
我得到一些XML数据作为输出。
现在我将此程序更改为:
public static void main(String[] args) {
Document doc;
try {
// need http protocol
doc = Jsoup.connect("http://google.com").get();
System.out.println("doc is = " + doc);
// get page title
String title = doc.title();
System.out.println("title : " + title);
// get all links
Elements links = doc.select("a[href]");
for (Element link : links) {
// get the value from href attribute
System.out.println("\nlink : " + link.attr("href"));
System.out.println("text : " + link.text());
}
} catch (IOException e) {
e.printStackTrace();
}
}
然后我得到例外:java.net.SocketTimeoutException: connect timed out
似乎我需要设置超时选项,请告诉我在eclipse中我能做到的地方?
我在下面提到了SO帖子,但仍面临同样的问题,我之间也没有任何代理来访问互联网:
Sometimes java.net.SocketTimeoutException: Read timed out. Sometimes not
答案 0 :(得分:2)
您可以通过Connection
Connection connection = Jsoup.connect("http://google.com");
connection.timeout(5000); // timeout in millis
doc = connection.get();
答案 1 :(得分:1)
超时为零被视为无限超时。
Jsoup.connect("http://google.com").timeout(0).get();