Java では、HTTP URL の可用性を確認するためにいくつかの方法を利用できます。最も簡単な方法は、java.net.URLConnection クラスを使用することです。
<code class="java">URL url = new URL(urlString); URLConnection connection = url.openConnection(); connection.connect();</code>
接続が正常に確立された場合、URL は使用できる可能性があります。ただし、このメソッドはデフォルトで GET リクエストを実行します。
URL に ping を実行する別のオプションは、java.net.Socket:
<code class="java">try (Socket socket = new Socket()) { socket.connect(new InetSocketAddress(hostname, port), timeout); return true; } catch (IOException e) { return false; }</code>
を使用することです。このメソッドを使用すると、特定のポートを明示的にテストし、ホストの可用性をより正確に示すことができます。
GET リクエストの代わりに HEAD リクエストを送信するには、 URLConnection を HttpURLConnection に設定し、リクエスト メソッドを設定します。
<code class="java">HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("HEAD");</code>
HEAD リクエストは通常、軽量であり、URL の可用性チェックに優先される場合があります。
URL が実際に利用可能かどうかを確認するだけでは、サーバーのアクセス可能性をテストするだけでは十分ではありません。 HTTP 応答コードも確認する必要があります。応答コード 200 は、リクエストが成功したことを示します。
<code class="java">int responseCode = connection.getResponseCode(); if (responseCode != 200) { // Not OK. }</code>
ping 操作に適切なタイムアウトを設定することが重要です。
<code class="java">connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout);</code>
これにより、接続を確立できない場合、または指定された時間枠内に応答が受信されない場合、操作はタイムアウトします。
これらの手法を組み合わせて、包括的な URL 可用性チェックを実行するユーティリティ メソッドを次に示します。 :
<code class="java">public static boolean pingURL(String url, int timeout) { 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>
以上がJava で URL の可用性を効率的に監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。