「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > HTTP URL Ping に推奨される Java メソッドは何ですか?

HTTP URL Ping に推奨される Java メソッドは何ですか?

2024 年 11 月 8 日に公開
ブラウズ:250

 What\'s the Preferred Java Method for HTTP URL Ping?

HTTP URL Ping の優先 Java メソッド

HTTP URL の可用性を確認するには、正確な情報を提供する信頼性の高いアプローチを採用することが重要です。そして効率的な結果が得られます。 Java で利用可能なオプションは次のとおりです:

java.net.URLConnection の使用:

java.net.URLConnection を利用した前述のアプローチは、実行可能なオプションです。接続を確立し、URL にアクセスできるかどうかを確認できます。

try {
    URLConnection connection = new URL(url).openConnection();
    connection.connect();
    LOG.info("Service "   url   " available, yeah!");
    available = true;
} catch (Exception e) {
    LOG.info("Service "   url   " unavailable, oh no!", e);
    available = false;
}

このメソッドは、URL への GET リクエストを効果的にシミュレートし、その可用性を検証します。

追加の考慮事項:

  • 終わりに接続: java.net.URLConnection クラスは明示的に閉じる必要はありません。これは暗黙的に処理されます。
  • HEAD リクエストの送信: GET の代わりに HEAD リクエストを送信するには、取得した URLConnection を HttpURLConnection にキャストし、setRequestMethod("HEAD") を使用してリクエスト メソッドを指定します。 。ただし、一部の Web サーバーは HEAD リクエストに対して HTTP 405 エラー (許可されていません) を返す場合があることに注意してください。
  • サーバー コンテンツの可用性のテスト: サーバーの可用性を確認するだけでは不十分な場合があります。 URL のコンテンツが利用可能かどうかを判断するには、HTTP 応答コードが 200 かどうかを確認します。
  • java.net.Socket の使用: もう 1 つのオプションは、java.net.Socket を使用することです。この方法は、HTTP 層をバイパスして、サーバーの IP アドレスとポートに直接接続します。

代替アプローチ:

  • java.net .InetAddress#isReachable(): このメソッドはホストの可用性をチェックできますが、ポート 80 を明示的にテストしません。

ユーティリティ メソッドの例:

public static boolean pingURL(String url, int timeout) {
    url = url.replaceFirst("^https", "http"); // Avoid SSL exceptions

    try {
        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        return (200 

このメソッドは、指定されたタイムアウトを持つ HEAD リクエストを使用して、URL の可用性を確認します。応答コードが 200 ~ 399 の範囲にある場合は true を返し、接続が成功したことを示します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3