hanker

JAVA - HttpUrlConnection, HttpsUrlConnection 본문

JAVA

JAVA - HttpUrlConnection, HttpsUrlConnection

hanker 2024. 9. 10. 14:34
반응형

1. HttpUrlConnection 

 

로컬에서 돌고있는 API를 하나 실행시켜서 결과값을 받아보자.

- API

@RequestMapping("/test")
public Map<String, Object> test() {
    Map<String, Object> map = new HashMap<>();


    map.put("index", "100");
    map.put("name", "spring");



    return map;
}

 

 

- URL 호출

public static void main(String[] args) throws Exception {
    try {
        // 요청할 URL (HTTP)
        URL url = new URL("http://127.0.0.1:2000/test");

        // HttpURLConnection 객체 생성
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        // 요청 방식 설정 (GET)
        connection.setRequestMethod("GET");

        // 응답 코드 확인
        int responseCode = connection.getResponseCode();
        System.out.println("Response Code : " + responseCode);

        // 응답 데이터를 읽음
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 결과 출력
        System.out.println("Response : " + response.toString());

    } catch (Exception e) {
        e.printStackTrace();
    }
}

응답코드 200이면 성공, 위에서 return 값도 잘 들어왔다.

 

 

2. HttpsUrlConnection

해당 URL은 예제로 hanke-r.tistory.com 을 호출 시켜보자

public static void main(String[] args) throws Exception {
    try {
        // 요청할 URL (HTTP)
        URL url = new URL("https://hanke-r.tistory.com");

        // HttpURLConnection 객체 생성
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

        // 요청 방식 설정 (GET)
        connection.setRequestMethod("GET");

        // 응답 코드 확인
        int responseCode = connection.getResponseCode();
        System.out.println("Response Code : " + responseCode);

        // 응답 데이터를 읽음
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 결과 출력
        System.out.println("Response : " + response.toString());

    } catch (Exception e) {
        e.printStackTrace();
    }
}

 

결과 

해당 URL은 view페이지를 반환하기 때문에 HTML코드로 return 된걸 확인할 수 있다.

 

주의할 점은 UrlConnection이 Http인지 Https인지 잘 파악해서 그에 맞는 라이브러리 사용해야한다.

 

java.lang.ClassCastException: sun.net.http://www.protocol.http.HttpURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection

만약 HttpsUrlConnection에 http를 입력하게 되었을경우 해당 오류가 발생한다.

 

반응형