我在使用 RestTemplate 以 UTF-8 编码发布 JSON 时遇到问题。 JSON 的默认编码是 UTF-8,因此媒体类型甚至不应该包含字符集。我试图将字符集放入 MediaType 中,但它似乎不起作用。
我的代码:
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 的 rest 模板的消息转换器。像这样
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
关于json - 如何告诉 RestTemplate 使用 UTF-8 编码进行 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392422/