配置RestTemplateConfig类
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(12000);
factory.setReadTimeout(12000);
return factory;
}
}
依赖注入
@Autowired
private RestTemplate restTemplate;
Application/json格式
// req 为请求的vo类
String rsp = restTemplate.postForObject(url, req, String.class);
Application/xml格式
HttpHeaders requestHeader = new HttpHeaders();
requestHeader.setContentType(MediaType.APPLICATION_XML);
StringBuffer xmlString = new StringBuffer();
xmlString.append("<message>")
.append("<QueryTime>2019.09.09 17:13:04</QueryTime>")
.append("<ReportCreateTime>2019.09.09 17:13:05</ReportCreateTime>")
.append("</message>");
// 创建 HttpEntity
HttpEntity<String> requestEntity = new HttpEntity<>(xmlString.toString(), requestHeader);
ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://localhost:8091/strmGuide/test", requestEntity, String.class);
System.out.println(responseEntity.getBody());