728x90
RestTemplate 한글 깨짐 해결방법
Spring의 RestTemplate을 이용해서 API를 호출할 때, 한글이 깨지는 현상 발생
아래와 같이 인코딩을 설정해주면 깨지지 않는다.
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
MessageConverter의 종류
1. ByteArrayHttpMessageConveter
- 지원하는 오브젝트 타입 : byte[]
- @RequestBody로 전달 받을 때 모든 종류의 HTTP 요청 메시지 본문을 byte 배열로 가져올 수 있음.
- @ResponseBody 로 보낼 때는 Content-Type : application/octet-stream으로 설정
2. StringHttpMessageConverter
- 지원하는 Object Type : String
- HTTP 요청의 본문을 그대로 String으로 가져올 수 있음
- HTTP는 기본적으로 text. 가공하지 않은 본문을 직접 받아서 사용하고 싶은 경우라면 유용하게 사용 가능
3. FormHttpMessageConverter
- Media Type이 application/x-www-form-urlencoded 로 정의된 폼 data를 주고 받을 때 사용.
4. SourceHttpMessageConverter
- MediaType : application/xml, application/*+xml, text/xml 세 가지를 지원한다.
5. Jaxb2RootElementHttpMessageConverter
- JAXB2의 @XmlRootElement 와 @XmlType 이 붙은 클래스를 이용해서 XML 과 오브젝트 사이의 메시지 변환을 지원한다.
- 기본적으로 SourceHttpMessageConverter 와 동일한 XML 미디어 타입을 지원한다.
6. MarshallingHttpMessageConverter
- 스프링의 OXM 추상화의 Marshaller 와 Unmarshaller 를 이용해서 XML 문서와 자바 오브젝트 사이의 변환을 지원해주는 컨버터
- MarshallingHttpMessageConverter 를 빈으로 등록할 때 프로퍼티에 marshaller 와 unmarshaller 를 설정해줘야 한다.
7. MappingJacksonHttpMessageConverter
- Jackson ObjectMapper 를 이용해서 자바 오브젝트와 JSON 문서를 자동변환해주는 메시지 컨버터다.
- 지원 미디어 타입은 application/json 이다.
- Jackson 프로젝트의 ObjectMapper 가 대부분의 자바 타입을 무난히 JSON 으로 변환해주지만 날짜나 숫자 등에서 포맷을 적용하는 등의 부가적인 변환 기능이 필요하다면 ObjectMapper 를 확장해서 적용할 수 있다.
출처 : https://velog.io/@jaejun/SpringHttpMessageConverter-%EB%9E%80
728x90
'STUDY > SpringLegacy' 카테고리의 다른 글
[Spring] @RequestMapping 어노테이션 (0) | 2023.04.19 |
---|---|
[Spring] @RequestBody @ResponseBody 어노테이션과 @RestController (0) | 2023.04.19 |
[SPRING] Tiles framework (0) | 2022.12.27 |
[JSP] JSP란? JSP와 서블릿의 차이점 (0) | 2022.12.25 |
[SPRING] 프로젝트 폴더 구조 분석 (0) | 2022.12.21 |