인프런 커뮤니티 질문&답변

권정익님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

섹션 6. 질문

해결된 질문

24.06.18 22:23 작성

·

76

0

@PostMapping("/request-body-string-v3")
    public HttpEntity<String> requestBodyStringV3(HttpEntity<String> httpEntity,
                                                  @RequestHeader MultiValueMap<String, String> headerMap) throws IOException {

        String messageBody = httpEntity.getBody();

        log.info("messageBody={}", messageBody);

        return new ResponseEntity<String>("Hello World", responseHeaders, 
HttpStatus.CREATED)
    }

교재에 보니, 이렇게 나와있는데 적용을 해봤더니 Hello World가 아니라 제가 h로 입력을 보내면 H로 화면에 출력됩니다.

제대로된 출력이 되지 않는 이유와 responseHeaders를 넣으면 어떻게 사용되는지 궁금합니다.

답변 1

1

y2gcoder님의 프로필 이미지

2024. 06. 19. 11:15

안녕하세요. 권정익님, 공식 서포터즈 y2gcoder입니다.

교재의 requestBodyStringV3()을 변형하여 올려주신 것으로 보입니다 🙂

제가 권정익님의 질문을 이해한 바로는

/request-body-string-v3 으로 호출할 때 body에 hello world 를 입력해서 보냈는데 Postman 응답으로 Hello World 가 반환되었다

는 말씀이실까요?

그렇다면 그 현상은 정상입니다. 왜냐하면

return new ResponseEntity<String>("Hello World", responseHeaders, 
HttpStatus.CREATED)

를 통해 응답 바디를 "Hello World"로 고정해서 보내주시기 때문입니다!

추가로

responseHeaders를 넣으면 어떻게 사용되는지 궁금합니다.

이 부분은 위에 제시해주신 코드에서는 responseHeaders 객체를 생성해서 반환해준 모습이 보이지 않습니다!

해당 객체는 보통 HTTP 응답에 헤더를 추가해주는 것으로 Postman 등을 통해 직접 응답값을 받으면 확인해보실 수 있습니다 🙂

 

만약

log.info("messageBody={}", messageBody);

이 부분에서 그러한 현상이 발생하고 있다면

 

실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.