Die Überwachung der Verfügbarkeit von HTTP-URLs ist für die Aufrechterhaltung der Systemintegrität und Benutzerzufriedenheit von entscheidender Bedeutung. Der bevorzugte Java-Ansatz, um dies zu erreichen, wird in diesem Artikel diskutiert.
Das bereitgestellte Code-Snippet versucht, eine HTTP-URL mithilfe eines URLConnection-Objekts zu pingen. Es ist funktionsfähig, wirft jedoch mehrere Bedenken auf:
Verwendung von 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>
Verwendung von InetAddress.isReachable():
<code class="java">boolean reachable = InetAddress.getByName(hostname).isReachable();</code>
Diese Methode testet jedoch Port 80 nicht explizit, wodurch aufgrund von Firewall-Einschränkungen das Risiko falsch-negativer Ergebnisse besteht.
<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>
Das HttpURLConnection-Objekt verarbeitet automatisch das Verbindungspooling und -schließen, sodass keine explizite Bereinigung erforderlich ist .
Das obige ist der detaillierte Inhalt vonWie kann ich eine HTTP-URL in Java zur Verfügbarkeitsüberwachung zuverlässig anpingen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!