반응형

자바로 HTTP 요청 처리하기: GET, POST, HEADER 예제

HTTP 통신은 현대 애플리케이션에서 서버와 클라이언트 간 데이터 교환의 핵심입니다. 자바에서는 표준 라이브러리와 외부 라이브러리를 활용하여 HTTP 요청을 쉽게 처리할 수 있습니다. 이번 글에서는 HTTP GET, POST, HEADER를 사용하는 방법과 예제를 소개합니다.


HTTP 요청의 주요 메서드

  1. GET: 서버에서 데이터를 가져오는 데 사용.
  2. POST: 서버에 데이터를 전송하는 데 사용.
  3. HEADER: 요청 헤더를 통해 부가 정보를 서버에 전달.

1. GET 요청

HttpClient를 이용한 GET 요청:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpGetExample {
    public static void main(String[] args) {
        try {
            String url = "https://jsonplaceholder.typicode.com/posts/1";

            HttpClient client = HttpClient.newHttpClient();
            HttpRequest httpRequest = HttpRequest.newBuilder()
                                        .uri(URI.create(url))
                                        .GET()
                                        .build();

            HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());

            System.out.println("Response Code: " + httpResponse.statusCode());
            System.out.println("Response Body: " + httpResponse.body());
        } catch (Exception e) {
	        e.printStackTrace();
        }
    }
}

출력 결과: JSON 데이터를 포함한 서버 응답.


2. POST 요청

HttpClient를 이용한 POST 요청:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpPostExample {
    public static void main(String[] args) {
        try {
            String url = "https://jsonplaceholder.typicode.com/posts";
            String body = "{"title": "foo", "body": "bar", "userId": 1}";

            HttpClient client = HttpClient.newHttpClient();
            HttpRequest httpRequest = HttpRequest.newBuilder()
                                        .uri(URI.create(url))
                                        .header("Content-Type", "application/json")
                                        .POST(HttpRequest.BodyPublishers.ofString(body))
                                        .build();

            HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());

            System.out.println("Response Code: " + httpResponse.statusCode());
            System.out.println("Response Body: " + httpResponse.body());
        } catch (Exception e) {
	        e.printStackTrace();
        }
    }
}

출력 결과: 서버에 전송된 데이터와 응답 메시지.


3. HEADER 추가하기

HttpClient를 이용하여 헤더 추가:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpHeaderExample {
    public static void main(String[] args) {
        try {
            String url = "https://jsonplaceholder.typicode.com/posts/1";

            HttpClient client = HttpClient.newHttpClient();
            HttpRequest httpRequest = HttpRequest.newBuilder()
                                        .uri(URI.create(url))
                                        .header("Authorization", "Bearer token123")
                                        .GET()
                                        .build();

            HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());

            System.out.println("Response Code: " + httpResponse.statusCode());
            System.out.println("Response Body: " + httpResponse.body());
        } catch (Exception e) {
	        e.printStackTrace();
        }
    }
}

출력 결과: 헤더를 포함한 요청에 대한 서버 응답.


결론

자바에서는 기본 API인 HttpClient를 활용하여 간단하고 직관적으로 HTTP 요청을 처리할 수 있습니다. GET, POST, HEADER를 적절히 활용하여 애플리케이션의 요구 사항을 충족해 보세요!

 

반응형

'개발 부트캠프 > 백엔드' 카테고리의 다른 글

[Java] Servlet Filter  (0) 2025.01.16
[Java] JSON  (0) 2025.01.16
[Java] SQL Injection  (1) 2025.01.10
[Java] 서블릿(Servlet)  (0) 2025.01.08
[Java] 계층형 아키텍처 패턴 (Layered Architecture Pattern)  (0) 2025.01.07

+ Recent posts