Springboot實現(xiàn)Java阿里短信發(fā)送代碼實例
阿里云短信服務還是非常好的,接口穩(wěn)定,同時還提供SDK,使得企業(yè)的接入該服務更加方便。下面來看看阿里云提供的發(fā)短信的java實例代碼吧
1.接口TestController
import java.util.Random;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;import com.aliyuncs.exceptions.ClientException;import com.aliyuncs.http.MethodType;import com.aliyuncs.profile.DefaultProfile;import com.aliyuncs.profile.IClientProfile;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { @RequestMapping(value = '/test') public void sendCode() throws ClientException { //返回碼 String code = getCode(); //設置超時時間-可自行調整 System.setProperty('sun.net.client.defaultConnectTimeout', '20000'); System.setProperty('sun.net.client.defaultReadTimeout', '20000'); //初始化ascClient需要的幾個參數(shù) final String product = 'Dysmsapi';//短信API產品名稱(短信產品名固定,無需修改) final String domain = 'dysmsapi.aliyuncs.com';//短信API產品域名(接口地址固定,無需修改) //替換成你的AK final String accessKeyId = '';//你的accessKeyId,參考本文檔步驟2 final String accessKeySecret = '';//你的accessKeySecret,參考本文檔步驟2 //初始化ascClient,暫時不支持多region(請勿修改) IClientProfile profile = DefaultProfile.getProfile('cn-hangzhou', accessKeyId,accessKeySecret); SendSmsResponse sendSmsResponse = null; DefaultProfile.addEndpoint('cn-hangzhou', 'cn-hangzhou', product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); //組裝請求對象 SendSmsRequest request = new SendSmsRequest(); //使用post提交 request.setMethod(MethodType.POST); //必填:待發(fā)送手機號。支持以逗號分隔的形式進行批量調用,批量上限為1000個手機號碼,批量調用相對于單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式;發(fā)送國際/港澳臺消息時,接收號碼格式為00+國際區(qū)號+號碼,如“0085200000000” request.setPhoneNumbers('15252095326'); //必填:短信簽名-可在短信控制臺中找到 request.setSignName('單點登錄'); //必填:短信模板-可在短信控制臺中找到,發(fā)送國際/港澳臺消息時,請使用國際/港澳臺短信模版 request.setTemplateCode('SMS_xxxxxxxx'); //可選:模板中的變量替換JSON串,如模板內容為'親愛的${name},您的驗證碼為$[code]'時,此處的值為 //友情提示:如果JSON中需要帶換行符,請參照標準的JSON協(xié)議對換行符的要求,比如短信內容中包含rn的情況在JSON中需要表示成rn,否則會導致JSON在服務端解析失敗 request.setTemplateParam('{'code':'' + code + ''}'); //可選-上行短信擴展碼(擴展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段) request.setSmsUpExtendCode('90997'); //可選:outId為提供給業(yè)務方擴展字段,最終在短信回執(zhí)消息中將此值帶回給調用者 request.setOutId('yourOutId'); //請求失敗這里會拋ClientException異常 sendSmsResponse = acsClient.getAcsResponse(request); System.out.println(sendSmsResponse.getCode()); if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals('OK')) { //請求成功 System.out.println('請求成功!'); } else { System.out.println('請求失敗!'); } } /** * @return 隨機生成的6位驗證碼 */ public static String getCode() { StringBuilder sb = new StringBuilder(); for (int i = 0; sb.length() < 6; i++) { int num = new Random().nextInt(10); sb.append(num); } return sb.toString(); }}
2.啟動類
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})public class SSOApplication { public static void main(String[] args){ SpringApplication.run(SSOApplication.class,args); }}
3.pom.xml
<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>sso-test</groupId> <artifactId>sso-test</artifactId> <version>1.0-SNAPSHOT</version> <url>http://maven.apache.org</url> <!-- 父級項目 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <dependencies> <!-- 測試 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- springmvc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- jpa(持久層) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <!-- 發(fā)送短信所需要的jar包 --> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.0.8</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>1.1.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.4</version> </dependency> </dependencies> <!-- 編譯 --> <build> <!-- 插件 --> <plugins> <!-- maven插件 --> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. php使用正則驗證密碼字段的復雜強度原理詳細講解 原創(chuàng)2. 基于javaweb+jsp實現(xiàn)企業(yè)車輛管理系統(tǒng)3. HTML5實戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)4. ASP將數(shù)字轉中文數(shù)字(大寫金額)的函數(shù)5. Jsp servlet驗證碼工具類分享6. jscript與vbscript 操作XML元素屬性的代碼7. 基于PHP做個圖片防盜鏈8. Jsp+Servlet實現(xiàn)文件上傳下載 文件列表展示(二)9. asp.net core 認證和授權實例詳解10. XML在語音合成中的應用
