java - HttpURLConnection 超时设置

标签 java url timeout

如果 URL 连接时间超过 5 秒,我想返回 false - 这怎么可能使用 Java?这是我用来检查 URL 是否有效的代码

HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);

最佳答案

HttpURLConnection 有一个 setConnectTimeout方法。

只需将超时设置为5000毫秒,然后捕获java.net.SocketTimeoutException

您的代码应如下所示:


try {
   HttpURLConnection.setFollowRedirects(false);
   HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
   con.setRequestMethod("HEAD");

   con.setConnectTimeout(5000); //set timeout to 5 seconds

   return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
} catch (java.net.SocketTimeoutException e) {
   return false;
} catch (java.io.IOException e) {
   return false;
}


关于java - HttpURLConnection 超时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2799938/

相关文章:

java - 如何为列表 JAXB 制作 setter

java - 为什么套接字在运行方法中被关闭?

java - 如何显示与JPS页面不同的URL链接?

asp.net - asp.net 应用程序继续运行时浏览器超时

ruby-on-rails - 如何调试 Heroku 请求超时错误

Java:Swing:Jlist

url - 从 URL 查找 Facebook ID

javascript正则表达式解析没有协议(protocol)的url

django - Heroku Push 导致 django 的 slug-compiler 出现超时错误

java - 从哪里可以获得 Notes.jar 或 NCSO.jar?