게으른 개발자의 끄적거림

Java https 소켓통신 방법

끄적잉 2023. 5. 30. 23:59

HTTPS는 HTTP 프로토콜을 기반으로 하는 보안 소켓 통신 프로토콜입니다. Java에서 HTTPS 소켓 통신을 위해 HttpsURLConnection 클래스를 사용할 수 있습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class HttpsExample {
    public static void main(String[] args) throws IOException {
        // HTTPS 통신을 위한 URL 생성
        URL url = new URL("https://www.example.com");
        
        // HttpsURLConnection 객체 생성
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        
        // SSL 인증서 검증 비활성화 (테스트 목적으로만 사용)
        connection.setHostnameVerifier((hostname, session) -> true);
        
        // 요청 방식 설정 (GET, POST 등)
        connection.setRequestMethod("GET");
        
        // 응답 코드 확인
        int responseCode = connection.getResponseCode();
        System.out.println("Response Code: " + responseCode);
        
        // 응답 내용 읽기
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line;
        StringBuilder response = new StringBuilder();
        
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        
        // 응답 내용 출력
        System.out.println("Response: " + response.toString());
        
        // 연결 종료
        connection.disconnect();
    }
}

 

HttpsURLConnection 클래스를 사용하여 HTTPS 연결을 설정하고, GET 요청을 보내고 응답을 받아옵니다. 이 예제에서는 SSL 인증서 검증을 비활성화하였으나, 실제 운영 환경에서는 SSL 인증서의 유효성을 검사해야 합니다.