[java] 뉴톤톡(rest api) 한글 데이터 보낼시 정상적인 데이터를 못받습니다

rest api 이용하여 로컬폴더로 다운받는 테스트중인데요.
xml 텍스트를 영어로 날렸을때는 잘 되는데
한글로 날리면 mp3파일이 오긴 오는데 0초임다. ㅜ

 @PostMapping(value = "/action")
public ResponseEntity<List<String>> makeVoice(@RequestBody TtsDTO dto) {
    RestTemplate restTemplate = new RestTemplate();
    String url = "https://kakaoi-newtone-openapi.kakao.com/v1/synthesize";
    //String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+"<speak>" + dto.getContent() + "</speak>";
    String xmlString = "<speak>" + dto.getContent() + "</speak>";
    log.info("xml확인:" + xmlString);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_XML);
    //headers.add("Content-Type","application/xml");
    headers.add("charset", "UTF-8");
    headers.add("Authorization", "KakaoAK 51b790b9e32597330a3825d667ef2c35");
    byte[] response = restTemplate.postForObject(url, new HttpEntity<String>(xmlString, headers), byte[].class);

    List<String> uploadPath = new ArrayList();
    uploadPath.add(FileUtil.saveMp3(response, dto.getTitle()).replace("\\", "-")   );

    return new ResponseEntity<>(uploadPath, HttpStatus.OK);
}

인코딩문제인가 싶어서 아래와 같이 시도해봤지만 한글은 모두 안됐습니다. 영어와 숫자는 토종한국인 발음으로 잘 읽어줍니다.
1.
headers.add(“Content-Type”,“application/xml; charset=utf-8”); -> charset넣는 순간 접근자체가 안됨.
2. header의 content-type을 add와 set둘다 해봐도 안됨
3. 두가지 툴에서 테스트해봄. 툴의 인코딩 문제는 아닌듯 함.
4. String xmlString = “<?xml version=\"1.0\" encoding=\"UTF-8\"?>”+"" + 안녕하세요 + “”;
-> xml String서두에 인코딩 타입을 지정했음. 안됨.

개인 프로젝트중인데 머리가 너무 아픕니다.
도와주세요 ㅠㅠ

해결했습니다. byte배열로 보내니 되네여ㅎㅎㅎㅎ 참고하세요

1개의 좋아요