定义一个RestTemlateConfig设置超时时间等
@Configuration
@Component
public class RestTemlateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory){
return new RestTemplate(requestFactory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
simpleClientHttpRequestFactory.setReadTimeout(10000);
simpleClientHttpRequestFactory.setConnectTimeout(10000);
return simpleClientHttpRequestFactory;
}
}
在启动类添加
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
使用实例
private static final String URL_TEMPLATE = "https://jmsms.market.alicloudapi.com/sms/send?mobile=%s&templateId=%s&value=%s";
@Autowired
private RestTemplate restTemplate;
/**
* 发送验证码测试
* @param to 发给谁
* @param templateId 模版id
* @param value
*/
public void send(String to,String templateId,String value){
String url= String.format(URL_TEMPLATE,to,templateId,value);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("Authorization","APPCODE " + smsConfig.getAppCode());
HttpEntity<String> httpEntity = new HttpEntity<>(httpHeaders);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
log.info("url={},body={}",url,response);
if (response.getStatusCode().is2xxSuccessful()){
log.info("发送短信验证码成功");
}else {
log.info("发送短信验证码失败-》url={},body={}",url,response);
}
}