"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > HTTP URL Ping에 선호되는 Java 방법은 무엇입니까?

HTTP URL Ping에 선호되는 Java 방법은 무엇입니까?

2024-11-08에 게시됨
검색:376

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

HTTP URL Ping에 선호되는 Java 방법

HTTP URL의 가용성을 확인하려면 정확한 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")를 사용하여 요청 방법을 지정합니다. . 그러나 일부 웹 서버는 HEAD 요청에 대해 HTTP 405 오류(허용되지 않음)를 반환할 수 있습니다.
  • 서버 콘텐츠 가용성 테스트: 서버 가용성을 확인하는 것만으로는 충분하지 않을 수 있습니다. URL의 콘텐츠를 사용할 수 있는지 확인하려면 HTTP 응답 코드가 200인지 확인하세요.
  • java.net.Socket 사용: 또 다른 옵션은 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