게으른 개발자의 끄적거림

Java API로 HTTP 통신하는 방법

끄적잉 2023. 8. 22. 21:44
728x90

Java에서 HTTP 통신을 수행하기 위해 가장 일반적으로 사용되는 방법 중 하나는 Java의 java.net 패키지와 java.io 패키지를 활용하는 것입니다. 이러한 패키지를 사용하여 HTTP GET 및 POST 요청을 보내고 응답을 처리할 수 있습니다.

아래는 Java에서 HTTP 통신을 수행하는 간단한 예제입니다.

HTTP GET 요청 보내기

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HTTPGetExample {
    public static void main(String[] args) {
        try {
            // URL 설정
            URL url = new URL("https://example.com/api/data");

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

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

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

            // 응답 데이터 읽기
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            StringBuilder response = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
            reader.close();

            // 응답 출력
            System.out.println("응답 데이터: " + response.toString());

            // 연결 닫기
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

HTTP POST 요청 보내기

 

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HTTPPostExample {
    public static void main(String[] args) {
        try {
            // URL 설정
            URL url = new URL("https://example.com/api/post");

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

            // POST 요청 설정
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);

            // POST 데이터 작성
            String postData = "key1=value1&key2=value2";
            byte[] postDataBytes = postData.getBytes("UTF-8");
            OutputStream os = connection.getOutputStream();
            os.write(postDataBytes);
            os.flush();
            os.close();

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

            // 연결 닫기
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

 

 

이러한 예제를 기반으로 원하는 HTTP 요청을 만들고 응답을 처리할 수 있습니다. 그러나 실제 프로젝트에서는 더 나은 에러 처리, 인증 및 보안 관련 사항을 고려해야 합니다. 이런 경우 Apache HttpClient 또는 OkHttp와 같은 서드파티 라이브러리를 사용하는 것이 좋을 수 있습니다.

 

 

728x90