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을 안정적으로 핑하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!