解决方案:
public class RestUtils {
private RestTemplate restTemplate = new RestTemplate();
public String post(String url, String jsonObject) {
// 解决返回值乱码
List<HttpMessageConverter<?>> httpMessageConverters = restTemplate.getMessageConverters();
httpMessageConverters.stream().forEach(httpMessageConverter -> {
if (httpMessageConverter instanceof StringHttpMessageConverter) {
StringHttpMessageConverter messageConverter = (StringHttpMessageConverter) httpMessageConverter;
//设置编码为UTF-8
messageConverter.setDefaultCharset(Charset.forName("UTF-8"));
}
});
HttpHeaders headers = new HttpHeaders();
// 解决body乱码
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity <?> requestBody = new HttpEntity <>(jsonObject, headers);
String response = restTemplate.postForObject(url, requestBody, String.class);
System.out.println("返回值 = " + response);
return response;
}
}