sms:app-code: dd7829bedfaf4373875aa91abba82523template-id: JM1000372package net.xdclass.config; import  org.springframework.context.annotation.Bean; 
import  org.springframework.context.annotation.Configuration; 
import  org.springframework.http.client.ClientHttpRequestFactory; 
import  org.springframework.http.client.SimpleClientHttpRequestFactory; 
import  org.springframework.web.client.RestTemplate; @Configuration
public class RestTemplateConfig { @Beanpublic RestTemplate restTemplate( ClientHttpRequestFactory requestFactory) { return  new RestTemplate( requestFactory) ; } @Beanpublic ClientHttpRequestFactory simpleClientHttpRequestFactory ( ) { SimpleClientHttpRequestFactory factory =  new SimpleClientHttpRequestFactory( ) ; factory.setReadTimeout( 10000 ) ; factory.setConnectTimeout( 10000 ) ; return  factory; } 
} package net.xdclass.component; import  lombok.extern.slf4j.Slf4j; 
import  net.xdclass.config.SmsConfig; 
import  org.springframework.beans.factory.annotation.Autowired; 
import  org.springframework.http.*; 
import  org.springframework.stereotype.Component; 
import  org.springframework.web.client.RestTemplate; @Component
@Slf4j
public class SmsComponent { /*** 发送地址*/private static final String URL_TEMPLATE =  "https://jmsms.market.alicloudapi.com/sms/send?mobile=%s&templateId=%s&value=%s" ; @Autowiredprivate RestTemplate restTemplate; @Autowiredprivate SmsConfig smsConfig; /*** 发送短信验证码* @param to* @param templateId* @param value*/
//    public void send( String to,String templateId,String value) { 
//
//        String url =  String.format( URL_TEMPLATE,to,templateId,value) ; 
//        HttpHeaders headers =  new HttpHeaders( ) ; 
//        //	    //最后在header中的格式( 中间是英文空格) 为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
//        headers.set( "Authorization" ,"APPCODE " +smsConfig.getAppCode( )) ; 
//        HttpEntity entity =  new HttpEntity<> ( headers) ; 
//        ResponseEntity< String>  response =  restTemplate.exchange( url, HttpMethod.POST, entity, String.class) ; 
//        log.info( "url={},body={}" ,url,response.getBody( )) ; 
//
//        if( response.getStatusCode( ) .is2xxSuccessful( )) { 
//            log.info( "发送短信验证码成功" ) ; 
//        } else{ 
//            log.info( "发送短信验证码失败:{}" ,response.getBody( )) ; 
//        } 
//    } public void send( String to, String templateId,String value)  { String url =  String.format( URL_TEMPLATE, to, templateId, value) ; HttpHeaders headers =  new HttpHeaders( ) ; //最后在header中的格式( 中间是英⽂空格) 为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.set( "Authorization" , "APPCODE "  + smsConfig.getAppCode( )) ; HttpEntity< String>  entity =  new HttpEntity<> ( headers) ; ResponseEntity< String>  response =  restTemplate.exchange( url, HttpMethod.POST, entity, String.class) ; log.info( "url={},body={}" , url, response.getBody( )) ; if  ( response.getStatusCode( )  ==  HttpStatus.OK)  { log.info( "发送短信成功,响应信息:{}" , response.getBody( )) ; }  else  { log.error( "发送短信失败,响应信息:{}" , response.getBody( )) ; } } 
} 
package net.xdclass.config; import  lombok.Data; 
import  org.springframework.boot.context.properties.ConfigurationProperties; 
import  org.springframework.context.annotation.Configuration; @ConfigurationProperties( prefix =  "sms" ) 
@Configuration
@Data
public class SmsConfig { private String templateId; private String appCode; 
} package net.xdclass.biz; import  lombok.extern.slf4j.Slf4j; 
import  net.xdclass.AccountApplication; 
import  net.xdclass.component.SmsComponent; 
import  net.xdclass.config.SmsConfig; 
import  org.junit.Test; 
import  org.junit.runner.RunWith; 
import  org.springframework.beans.factory.annotation.Autowired; 
import  org.springframework.boot.test.context.SpringBootTest; 
import  org.springframework.test.context.junit4.SpringRunner; @RunWith( SpringRunner.class) 
@SpringBootTest( classes =  AccountApplication.class) 
@Slf4j
public class SmsTest { @Autowiredprivate SmsComponent smsComponent; @Autowiredprivate SmsConfig smsConfig; @Testpublic void testSendSms ( ) { smsComponent.send( "13093734905" ,smsConfig.getTemplateId( ) ,"666888" ) ; } 
}