HttpEntity
HttpEntity는 HTTP Header, Body 정보를 편리하게 조회할 수 있도록 만들어준다.
HttpEntity 역할
HttpEntity를 상속받은 객체
RequestEntity<>ResponseEntity<>@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, 상태코드
}
}

Spring은 Http RequestBody Message를 읽어서 String이나 Object로 자동으로 변환해준다.
이때 HttpMessageConverter가 사용된다.
@RequestBody, @ResponseBody
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;
}
}
Postman

@RequestBody
@RequestHeader
@ResponseBody
요약