T_era
HttpEntity와 더 편리한 방법 본문
HttpEntity 역할
- HTTP Request Body Message를 직접 조회한다.
- Request 뿐만 아니라 Response에서도 사용 가능하다.
- Response Header 또한 활용할 수 있다.
- Request Parameter 조회 기능과는 관련이 없다.
- View를 반환하지 않는다.
HttpEntity 상속 객체
- RequestEntity<>: HTTP Request Method, URL 정보를 추가적으로 제공한다.
- ResponseEntity<>: HTTP Response 상태 코드 설정을 가능하게 한다.
HttpEntity 특징
HttpEntity는 HTTP Header와 Body 정보를 편리하게 조회하도록 지원한다.
예시
@Controller
public class RequestBodyStringController {
@PostMapping("/v4/request-body-text")
public HttpEntity<String> requestBodyTextV4(RequestEntity<String> httpEntity) {
// HttpMessageConverter가 동작하여 아래 코드가 수행됨
String body = httpEntity.getBody();
// url, method 사용 가능
return new ResponseEntity<>("response = " + body, HttpStatus.CREATED); // Body Data, 상태코드
}
}
@RequestBody, @ResponseBody, @RequestHeader
Spring에서 @RequestBody, @ResponseBody 어노테이션을 사용하면 Request 및 Response 객체의 Body에 편리하게 접근하여 사용할 수 있다.
@Controller // @RestController = @Controller + @ResponseBody
public class RequestBodyStringController {
@ResponseBody
@PostMapping("/v5/request-body-text")
public String requestBodyTextV5(
@RequestBody String body,
@RequestHeader HttpHeaders headers
) {
// HttpMessageConverter가 동작하여 아래 코드가 수행됨
String bodyMessage = body;
return "request header = " + headers + " response body = " + bodyMessage;
}
}
- @RequestBody: 요청 메시지 Body Data를 쉽게 조회할 수 있도록 한다.
- @RequestHeader: 요청 헤더 정보를 조회한다.
- @ResponseBody: 응답 메시지 Body에 값을 쉽게 담아 전달하며, View가 아닌 데이터를 반환한다.
요약
- 요청 파라미터, HTML Form Data 접근 시: @RequestParam, @ModelAttribute 사용.
- Http Message Body 접근 시 (JSON, XML, TEXT): @RequestBody 사용.
'Programing > Spring' 카테고리의 다른 글
| @RestController를 @Controller와 @ResponseBody를 나눠 쓰는 이유 (0) | 2025.05.07 |
|---|---|
| JSON 데이터 처리 (@RestController) (0) | 2025.05.07 |
| HTTP Message Body (요청) (0) | 2025.05.07 |
| @RequestParam과 @ModelAttribute (0) | 2025.05.07 |
| Client에서 Server로 데이터 전달 방식 정리 (0) | 2025.05.06 |