Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- java
- Python
- visual studio code
- 자동배포
- Jenkins
- UNION ALL
- pat발급
- github
- ANTIFRAGILE
- git branch 삭제
- JPQL
- ci/cd
- 명령어
- db종류
- JPA
- gtihub
- git pat
- docker
- jetbrain
- 오블완
- TIOBE
- 애널리틱스4
- 티스토리챌린지
- MariaDB
- IntelliJ
- 르세라핌
- spring
- EntityManager
- analytics4
Archives
- Today
- Total
hanker
JAVA - HttpUrlConnection, HttpsUrlConnection (httpMethod GET, POST) (1) 본문
JAVA
JAVA - HttpUrlConnection, HttpsUrlConnection (httpMethod GET, POST) (1)
hanker 2024. 9. 11. 23:22반응형
이전에 썻던 내용인데 Url Connection 하여 데이터 송수신 할 경우에, GET방식으로 보낼지 POST 방식으로 보낼지 설정한다.
대부분 API에서 어떤 방식으로 보내라고 설명되어있는데, 대표적인 GET/POST 방식을 살펴보자.
요청 받는 API를 만들어보자
@RequestMapping("/test")
public Map<String, Object> test(@RequestParam Map<String, Object> params) {
Map<String, Object> map = new HashMap<>();
map.put("index", "1");
map.put("name", params.get("name"));
return map;
}
해당 API 에서는 파라미터에서 name이라는 Key에 value값을 찾아서 map안에 name key값에 담아준다.
1. GET 방식
해당 방식은 URL에 요청파라미터가 포함되어있다.
대게 파라미터를 서버에 전송하여 결과값을 받아낼 때 사용한다.
public static void main(String[] args) throws Exception {
try {
// 요청할 URL (HTTP)
URL url = new URL("http://127.0.0.1:2000/test?name=hanker");
// HttpURLConnection 객체 생성
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 요청 방식 설정 (GET)
connection.setRequestMethod("GET");
// 응답 코드 확인
int responseCode = connection.getResponseCode();
System.out.println("Response Code : " + responseCode);
// 응답 데이터를 읽음
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 결과 출력
System.out.println("Response : " + response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
Get 방식으로 Url에 해당 name=hanker라는 파라미터를 담아서 넘겼다.
결과 :
API에서 반환된 값이 정상적으로 잘 넘어온것이 확인된다.
2. POST 방식
해당 방식은 URL에서는 보이지 않고 요청 본문에 파라미터가 포함되서 들어간다.
대게 파라미터값을 저장/수정할 때 사용한다.
public static void main(String[] args) throws Exception {
try {
// 요청할 URL (HTTP)
URL url = new URL("http://127.0.0.1:2000/test");
// HttpURLConnection 객체 생성
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 요청 방식 설정 (GET)
connection.setRequestMethod("POST");
connection.setDoOutput(true);
String urlParameters = "name=hanker";
try (DataOutputStream os = new DataOutputStream(connection.getOutputStream())) {
byte[] input = urlParameters.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
// 응답 코드 확인
int responseCode = connection.getResponseCode();
System.out.println("Response Code : " + responseCode);
// 응답 데이터를 읽음
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 결과 출력
System.out.println("Response : " + response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
해당 요청을 보면 옵션이 추가가 되어있는데, connection.setDoOutput(true)설정을 추가해주고,
해당 요청 본문에 들어갈 파라미터값을 적어준다.
결과 :
끝
반응형
'JAVA' 카테고리의 다른 글
JAVA - Lambda (java 8) (0) | 2024.09.15 |
---|---|
JAVA - stream (1) | 2024.09.13 |
JAVA - HttpUrlConnection, HttpsUrlConnection (0) | 2024.09.10 |
JAVA - HTML String값 특정 태그 변경 (1) | 2024.09.07 |
JAVA - 단일 역슬래시, 역슬래시 뒤 숫자 없애기 (1) | 2024.09.06 |