ホームページ  >  記事  >  Java  >  Java で URL の可用性を効率的に監視するにはどうすればよいですか?

Java で URL の可用性を効率的に監視するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 23:27:29191ブラウズ

How to Efficiently Monitor URL Availability in Java?

Java での効率的な URL 可用性の監視

URL の可用性の確認

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>

を使用することです。このメソッドを使用すると、特定のポートを明示的にテストし、ホストの可用性をより正確に示すことができます。

HEAD リクエスト オプション

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。