お世話になります。
Controller内でRestTemplateを使用し、
XML形式をPOSTすると、受信側で受信したXMLの日本語の値が文字化けしてしまいます。
HttpHeadersに文字コードを定義しようとしたのですが、
setContentTypeメソッドがMediaTypeしか定義できないため、
文字コードの設定方法がわかりません。
もしくはそれ以外の場所に原因があるのかもしれません。
ソースコードを記載致しますので、文字化けの原因をご教示頂けますと幸いです。
public void postApi(Hogehoge hogehoge, Hoge hoge) { List<Hoge> hoges = new ArrayList<Hoge>(); hoges.add(hoge); hogehoge.setHoges(hoges); StringWriter xmlString = new StringWriter(); JAXB.marshal(hogehoge, xmlString); RestTemplate restTemplate = new RestTemplate(); List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>(); messageConverters.add(new StringHttpMessageConverter()); restTemplate.setMessageConverters(messageConverters); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_XML); HttpEntity<String> request = new HttpEntity<String>(xmlString.toString(), headers); final ResponseEntity<String> response = restTemplate.postForEntity("hogehoge", request, String.class); }
//受信側 <?php error_log(file_get_contents('php://input'), 3, dirname(__FILE__).'/app.log'); ?>
//XML <hogevalue>????</hogevalue>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/15 12:57