T_era

HttpEntity와 더 편리한 방법 본문

Programing/Spring

HttpEntity와 더 편리한 방법

블스뜸 2025. 5. 7. 12:43

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 사용.