我在使用 RestTemplate 发布采用 UTF-8 编码的 JSON 时遇到问题。 JSON 的默认编码是 UTF-8,因此媒体类型甚至不应该包含字符集。我尝试将字符集放入 MediaType 但它似乎无论如何都不起作用。
My code:
String dataJson = "{\"food\": \"smörrebröd\"}";
HttpHeaders headers = new HttpHeaders();
MediaType mediaType = new MediaType("application", "json", StandardCharsets.UTF_8);
headers.setContentType(mediaType);
HttpEntity<String> entity = new HttpEntity<String>(dataJson, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Boolean> formEntity = restTemplate.exchange(postUrl, HttpMethod.POST, entity, Boolean.class);
您需要将 StringHttpMessageConverter 添加到剩余模板的消息转换器,字符集为 UTF-8。像这样
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)