1. ホーム
  2. java

[解決済み] HttpURLConnectionのタイムアウト設定

2022-06-18 05:50:06

質問

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;
}