一:创建短信签名和模板
二:创建AccessKey,来使用API
三:使用短信API
四:接下来只需要按照官方文档复制代码就可以运行项目了
核心代码:
导入jar包
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.16</version>
</dependency>
官网代码
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
public class SendSms {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("ap-northeast-1", "<accessKeyId>", "<accessSecret>");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.ap-southeast-1.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
request.putQueryParameter("PhoneNumbers", "1503871****");
request.putQueryParameter("SignName", "阿里大于测试专用");
request.putQueryParameter("TemplateCode", "SMS_209335004");
request.putQueryParameter("TemplateParam", "{\"code\":\"1111\"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
用官网的代码报错
com.aliyuncs.exceptions.ServerException: ServiceUnavailable : The request has failed due to a temporary failure of the server.
RequestId : CF12905D-C736-47B2-9D20-A85C04EBF852
at com.aliyuncs.DefaultAcsClient.getCommonResponse(DefaultAcsClient.java:176)
at cn.itcast.duanxin.SendMsg.main(SendMsg.java:32)
将官网这些代码改成下面的
request.setSysDomain("dysmsapi.aliyuncs.com");
package cn.itcast.duanxin;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.UUID;
public class SendMsg {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("ap-northeast-1", "===", "===");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
String phone="===";
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("SignName", "===");
request.putQueryParameter("TemplateCode", "====");
String msg= UUID.randomUUID().toString().replace("-","").substring(0,6);
request.putQueryParameter("TemplateParam", "{\"code\":\""+msg+"\"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}