当前位置:   article > 正文

如何使用阿里云的短息服务_com.aliyuncs.exceptions.serverexception: serviceun

com.aliyuncs.exceptions.serverexception: serviceunavailable : the request ha

一:创建短信签名和模板

二:创建AccessKey,来使用API

三:使用短信API

四:接下来只需要按照官方文档复制代码就可以运行项目了

核心代码:

导入jar包

  1. <dependency>
  2. <groupId>com.aliyun</groupId>
  3. <artifactId>aliyun-java-sdk-core</artifactId>
  4. <version>4.5.16</version>
  5. </dependency>

官网代码

  1. import com.aliyuncs.CommonRequest;
  2. import com.aliyuncs.CommonResponse;
  3. import com.aliyuncs.DefaultAcsClient;
  4. import com.aliyuncs.IAcsClient;
  5. import com.aliyuncs.exceptions.ClientException;
  6. import com.aliyuncs.exceptions.ServerException;
  7. import com.aliyuncs.http.MethodType;
  8. import com.aliyuncs.profile.DefaultProfile;
  9. public class SendSms {
  10. public static void main(String[] args) {
  11. DefaultProfile profile = DefaultProfile.getProfile("ap-northeast-1", "<accessKeyId>", "<accessSecret>");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. CommonRequest request = new CommonRequest();
  14. request.setSysMethod(MethodType.POST);
  15. request.setSysDomain("dysmsapi.ap-southeast-1.aliyuncs.com");
  16. request.setSysVersion("2017-05-25");
  17. request.setSysAction("SendSms");
  18. request.putQueryParameter("PhoneNumbers", "1503871****");
  19. request.putQueryParameter("SignName", "阿里大于测试专用");
  20. request.putQueryParameter("TemplateCode", "SMS_209335004");
  21. request.putQueryParameter("TemplateParam", "{\"code\":\"1111\"}");
  22. try {
  23. CommonResponse response = client.getCommonResponse(request);
  24. System.out.println(response.getData());
  25. } catch (ServerException e) {
  26. e.printStackTrace();
  27. } catch (ClientException e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. }

用官网的代码报错

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");
  1. package cn.itcast.duanxin;
  2. import com.aliyuncs.CommonRequest;
  3. import com.aliyuncs.CommonResponse;
  4. import com.aliyuncs.DefaultAcsClient;
  5. import com.aliyuncs.IAcsClient;
  6. import com.aliyuncs.exceptions.ClientException;
  7. import com.aliyuncs.exceptions.ServerException;
  8. import com.aliyuncs.http.MethodType;
  9. import com.aliyuncs.profile.DefaultProfile;
  10. import java.util.UUID;
  11. public class SendMsg {
  12. public static void main(String[] args) {
  13. DefaultProfile profile = DefaultProfile.getProfile("ap-northeast-1", "===", "===");
  14. IAcsClient client = new DefaultAcsClient(profile);
  15. CommonRequest request = new CommonRequest();
  16. request.setSysMethod(MethodType.POST);
  17. request.setSysDomain("dysmsapi.aliyuncs.com");
  18. request.setSysVersion("2017-05-25");
  19. request.setSysAction("SendSms");
  20. String phone="===";
  21. request.putQueryParameter("PhoneNumbers", phone);
  22. request.putQueryParameter("SignName", "===");
  23. request.putQueryParameter("TemplateCode", "====");
  24. String msg= UUID.randomUUID().toString().replace("-","").substring(0,6);
  25. request.putQueryParameter("TemplateParam", "{\"code\":\""+msg+"\"}");
  26. try {
  27. CommonResponse response = client.getCommonResponse(request);
  28. System.out.println(response.getData());
  29. } catch (ServerException e) {
  30. e.printStackTrace();
  31. } catch (ClientException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. }

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号