티스토리 뷰
네트워크 커뮤니케이션에서 사용되는 HTTP 메서드인 GET과 POST에 대해 알아보자.
- GET
- Purpose
: 지정된 리소스로부터 더이터를 요청하는 데 사용된다. - Characteristics
- 서버의 상태를 변경하지 않아야 하는 안전하면 무권력적(idempotent) 적이다.
- 매개변수는 URL (query string)의 일부로 전송된다.
- 일반적으로 데이터를 검색하는 데 사용된다. (예: 사용자 정보 가져오기).
- Uasge
: URL 길이 제한으로 인해 데이터 전송이 제한된다.
- Purpose
- POST
- Purpose
: 리소스를 만들거나 업데이트하기 위해 서버로 데이터를 전송하는 데 사용된다. - Characteristics
- 비동기식 (여러 요청을 보내면 다른 효과를 낼 수 있음) 이 아니다.
- 매개변수가 요청 본문으로 전송되어 더 큰 페이로드를 허용한다.
- 양식 제출, 파일 업로드 등과 같은 작업에 사용된다.
- Usage
: 더 복잡한 데이터 (예: JSON, XML)을 보낼 수 있다.
- Purpose
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();
}
}
}
반응형
'기술(Tech, IT) > 네트워크 (Networking)' 카테고리의 다른 글
[Networking] Firebase Cloud Messaging (FCM) (2) | 2024.10.24 |
---|---|
[Computer Network] REST (Representational State Transfer) - 1 (4) | 2024.10.14 |
[Networking] Peer IP (0) | 2024.05.28 |
[Networking] Network Interfaces Naming - Linux (0) | 2024.05.22 |
[Networking] GetAdaptersAddresses function (iphlpapi.h) (0) | 2024.05.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 머신 러닝
- java
- leetcode
- 컴퓨터 그래픽스
- 투 포인터
- The Economist Espresso
- Python
- 소켓 프로그래밍
- The Economist
- machine learning
- 벡터
- Hash Map
- ml
- 이코노미스트 에스프레소
- vertex shader
- 이코노미스트
- Android
- Vector
- DICTIONARY
- tf-idf
- join
- defaultdict
- 안드로이드
- 파이썬
- socket programming
- 리트코드
- min heap
- 딕셔너리
- C++
- Computer Graphics
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형