POST 요청이란?
서버에 요청하는 방식
클라이언트가 서버에 요청을 할 때 제공해야하는 자원이 있을 때
Get방식은 요청하는 자원을 URL에 뒤에 보내는 반면
POST방식은 URL에 붙이지 않고 따로 데이터(Body)를 만들어 보낸다.
Spring Framework에서 POST 요청 하기
1. body 만들기 |
Body는 보통 key, value의 쌍으로 이루어지기 때문에 자바에서 제공해주는 MultiValueMap 타입을 사용해야한다.
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add('')
MultiValueMap 타입으로 만들어준 변수에 add()를 사용해 보낼 데이터를 추가해준다.
2. Header 만들기 |
HTTP POST를 요청할때 보내는 데이터(Body)를 설명해주는 헤더(Header)도 만들어서 같이 보내줘야 한다.
HttpHeaders headers = new HttpHeaders();
headers.add("");
Spring Framework에서 제공해주는 HttpHeaders 클래스는 Header를 만들어준다.
add()를 사용해 Header에 들어갈 내용을 추가해주자.
3. 요청을 위해 헤더(Header)와 데이터(body) 합치기 |
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(params, headers);
Spring Framework에서 제공해주는 HttpEntity 클래스는 Header와 Body를 합쳐준다.
4. POST 요청해보기 |
RestTemplate rt = new RestTemplate();
ResponseEntity<String> response = rt.exchange(
"https://{요청할 서버 주소}", //{요청할 서버 주소}
HttpMethod.POST, //{요청할 방식}
entity, // {요청할 때 보낼 데이터}
String.class {요청시 반환되는 데이터 타입}
);
Spring Framework에서는 서버에 요청을 편하게 하기 위한 RestTemplate 클래스를 제공해준다.
response에 서버에서 응답해준 데이터가 저장될 것이다.
※ RestTemplate란?
HTTP 메소드에 의한 평범한 기능 템플릿을 제공해주고, 더 나아가 특별한 케이스를 지원하는 exchange와 execute 메소드를 제공해준다.
exchage() : 모든 HTTP 요청 메소드를 지원하며 원하는 서버에 요청시켜주는 메소드
'IT기술 > spring' 카테고리의 다른 글
IntelliJ 인코딩 설정방법 (0) | 2022.09.22 |
---|---|
IntelliJ 플러그인 추천 (0) | 2022.09.12 |
[spring] Ajax Option 정리 및 Ajax 415 Unsupported Error 원인/해결 (0) | 2021.09.30 |
[spring] 오류처리 expected at least 1 bean which qualifies as autowire candidate for this dependency (0) | 2021.09.30 |
[spring] MyBatis insert, update NULL (0) | 2021.09.30 |