restTemplate调接口 乱码处理
**如果是spring boot项目,调用用@Autowired注入
@Autowired
private RestTemplate restTemplate;
appliction启动类里面配置一下:
@Bean
@LoadBalanced//对restTemplate进行负载均衡
public RestTemplate restTemplate () {
return new RestTemplate();
}
**如果是Spring Mvc 项目,随便创建一个类注入bean
然后调用的话就直接即可
RestTemplate restTemplate = new RestTemplate();
@Configuration
public class CdPlayConfig {
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
然后service调用或者controller调用
JSONObject json = new JSONObject();
//json.put("phoneNumbers",t.getMobile());
json.put("phoneNumbers","中文");
json.put("content", "xxxxx中文");
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> formEntity = new HttpEntity<String>(json.toString(), headers);
String string = restTemplate.postForObject("url",formEntity,String.class);
如果是spring cloud微服务互相调用,就调用微服务的服务名即可
例:url=“http://zuul配置里面的模块服务名/xxx/xx”
接收
@RequestMapping(value = "/xx")
@ResponseBody
public Map<String,Object> temporarilyClosetosms(@RequestBody JSONObject jsonObj){
String x1= jsonObj.getString("phoneNumbers");
String x2= jsonObj.getString("content");
//也可以传递对象过来,直接json转对象就行,
}