HTTP URL の可用性を監視することは、システムの整合性とユーザーの満足度を維持するために重要です。これを実現するための推奨される Java アプローチについては、この記事で説明します。
提供されたコード スニペットは、URLConnection オブジェクトを使用して HTTP URL に ping を試みます。これは機能しますが、いくつかの懸念があります。
Java.net.Socket の使用:
<code class="java">public static boolean pingHost(String host, int port, int timeout) { try (Socket socket = new Socket()) { socket.connect(new InetSocketAddress(host, port), timeout); return true; } catch (IOException e) { return false; } }</code>
InetAddress.isReachable() の使用:
<code class="java">boolean reachable = InetAddress.getByName(hostname).isReachable();</code>
ただし、この方法ではポート 80 が明示的にテストされないため、ファイアウォールの制限により誤検知が発生する危険があります。
<code class="java">HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("HEAD"); int responseCode = connection.getResponseCode(); if (responseCode != 200) { // Not available }</code>
<code class="java">public static boolean pingURL(String url, int timeout) { url = url.replaceFirst("^https", "http"); // Handle SSL certificate issues try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout); connection.setRequestMethod("HEAD"); int responseCode = connection.getResponseCode(); return (200 <= responseCode && responseCode <= 399); } catch (IOException exception) { return false; } }</code>
HttpURLConnection オブジェクトは、接続のプールと終了を自動的に処理するため、明示的なクリーンアップの必要がなくなります。 .
以上が可用性監視のために Java で HTTP URL に確実に ping を送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。