티스토리 뷰

네트워크 커뮤니케이션에서 사용되는 HTTP 메서드인 GET과 POST에 대해 알아보자.

 

  1. GET
    1. Purpose
      : 지정된 리소스로부터 더이터를 요청하는 데 사용된다.
    2. Characteristics
      1. 서버의 상태를 변경하지 않아야 하는 안전하면 무권력적(idempotent) 적이다.
      2. 매개변수는 URL (query string)의 일부로 전송된다.
      3. 일반적으로 데이터를 검색하는 데 사용된다. (예: 사용자 정보 가져오기).
    3. Uasge
      : URL 길이 제한으로 인해 데이터 전송이 제한된다.
  2. POST
    1. Purpose
      : 리소스를 만들거나 업데이트하기 위해 서버로 데이터를 전송하는 데 사용된다.
    2. Characteristics
      1. 비동기식 (여러 요청을 보내면 다른 효과를 낼 수 있음) 이 아니다.
      2. 매개변수가 요청 본문으로 전송되어 더 큰 페이로드를 허용한다.
      3. 양식 제출, 파일 업로드 등과 같은 작업에 사용된다.
    3. Usage
      : 더 복잡한 데이터 (예: JSON, XML)을 보낼 수 있다.

GET 예제

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

public class GetRequestExample {
    public static void main(String[] args) {
        try {
            String url = "https://jsonplaceholder.typicode.com/posts"; // Sample API
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            con.setRequestMethod("GET");

            // Check the response code
            int responseCode = con.getResponseCode();
            System.out.println("GET Response Code :: " + responseCode);

            if (responseCode == HttpURLConnection.HTTP_OK) { // success
                BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();

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

                // Print the response
                System.out.println("Response: " + response.toString());
            } else {
                System.out.println("GET request not worked");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

POST 예제

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

public class PostRequestExample {
    public static void main(String[] args) {
        try {
            String url = "https://jsonplaceholder.typicode.com/posts"; // Sample API
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application/json; utf-8");
            con.setRequestProperty("Accept", "application/json");
            con.setDoOutput(true);

            // JSON payload to send
            String jsonInputString = "{\"title\": \"foo\", \"body\": \"bar\", \"userId\": 1}";

            // Write the request body
            try (OutputStream os = con.getOutputStream()) {
                byte[] input = jsonInputString.getBytes("utf-8");
                os.write(input, 0, input.length);
            }

            // Check the response code
            int responseCode = con.getResponseCode();
            System.out.println("POST Response Code :: " + responseCode);

            if (responseCode == HttpURLConnection.HTTP_CREATED) { // success
                BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();

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

                // Print the response
                System.out.println("Response: " + response.toString());
            } else {
                System.out.println("POST request not worked");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함
반응형