• 【快速上手系列】使用阿里云发送测试短信超简单教程


    【快速上手系列】使用阿里云发送测试短信超简单教程

    步骤

    一、阿里云配置

    1、进入阿里云首页点击短信服务

    请添加图片描述

    2、短信服务界面

    请添加图片描述

    3、点击快速学习,然后绑定测试手机号,绑定好后点击调用API发送短信

    请添加图片描述

    4、左侧可以看到一些参数设置,右面是可以选择的demo代码

    请添加图片描述

    5、测试代码中需要改的是你自己的accessKeyIdaccessKeySecret

    在短信服务页面或主页的右上角点击自己的账号,然后点击AccessKeyId管理

    请添加图片描述

    点击创建AccessKey,然后点击查看Secret

    请添加图片描述

    可以看到上面有AccessKey IDAccessKey Secret,这两个参数内容都要复制下来,都是一会要用到的(查看已有的需要手机号再次验证)

    至此网站的配置完成

    二、代码

    1、配置maven依赖:pom.xml

    
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>dysmsapi20170525artifactId>
        <version>2.0.22version>
    dependency>
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>darabonba-java-coreartifactId>
        <version>0.1.5-betaversion>
    dependency>
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>alibabacloud-dysmsapi20170525artifactId>
        <version>1.0.1version>
    dependency>
    
    <dependency>
        <groupId>org.slf4jgroupId>
        <artifactId>slf4j-nopartifactId>
        <version>1.7.2version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    2、这里用的是升级版的SDK版本,虽然官网都有代码了,还是在这里粘一下

    在这两个demo里面都只需要改两个参数:就是我们上面保存的那个AccessKey IDAccessKey Secret

    tips:这两个demo里面只改这两个参数和手机号即可(就是格式为----------XXXX----------的这种)

    Java(异步)demo
    // This file is auto-generated, don't edit it. Thanks.
    package com.r.demo;
    
    import com.aliyun.auth.credentials.Credential;
    import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
    import com.aliyun.core.http.HttpClient;
    import com.aliyun.core.http.HttpMethod;
    import com.aliyun.core.http.ProxyOptions;
    import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
    import com.aliyun.sdk.service.dysmsapi20170525.models.*;
    import com.aliyun.sdk.service.dysmsapi20170525.*;
    import com.google.gson.Gson;
    import darabonba.core.RequestConfiguration;
    import darabonba.core.client.ClientOverrideConfiguration;
    import darabonba.core.utils.CommonUtil;
    import darabonba.core.TeaPair;
    
    //import javax.net.ssl.KeyManager;
    //import javax.net.ssl.X509TrustManager;
    import java.net.InetSocketAddress;
    import java.time.Duration;
    import java.util.*;
    import java.util.concurrent.CompletableFuture;
    
    public class SendSms {
        public static void main(String[] args) throws Exception {
    
            // HttpClient Configuration
            /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                    .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds
                    .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout time, the default is 20 seconds
                    .maxConnections(128) // Set the connection pool size
                    .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout, the default is 30 seconds
                    // Configure the proxy
                    .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("", 9001))
                            .setCredentials("", ""))
                    // If it is an https connection, you need to configure the certificate, or ignore the certificate(.ignoreSSL(true))
                    .x509TrustManagers(new X509TrustManager[]{})
                    .keyManagers(new KeyManager[]{})
                    .ignoreSSL(false)
                    .build();*/
    
            // Configure Credentials authentication information, including ak, secret, token
            StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                    .accessKeyId("----------在这里写上自己的accessKeyId即可----------")
                    .accessKeySecret("----------在这里写上自己的accessKeySecret即可----------")
                    //.securityToken("") // use STS token
                    .build());
    
            // Configure the Client
            AsyncClient client = AsyncClient.builder()
                    .region("cn-hangzhou") // Region ID
                    //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
                    .credentialsProvider(provider)
                    //.serviceConfiguration(Configuration.create()) // Service-level configuration
                    // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                    .setEndpointOverride("dysmsapi.aliyuncs.com")
                            //.setConnectTimeout(Duration.ofSeconds(30))
                    )
                    .build();
    
            // Parameter settings for API request
            SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
                    .signName("阿里云短信测试")
                    .templateCode("SMS_154950909")
                    .phoneNumbers("----------这里是你自己的手机号----------")
                    .templateParam("{\"code\":\"1234\"}")
                    // Request-level configuration rewrite, can set Http request parameters, etc.
                    // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                    .build();
    
            // Asynchronously get the return value of the API request
            CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
            // Synchronously get the return value of the API request
            SendSmsResponse resp = response.get();
            System.out.println(new Gson().toJson(resp));
            // Asynchronous processing of return values
            /*response.thenAccept(resp -> {
                System.out.println(new Gson().toJson(resp));
            }).exceptionally(throwable -> { // Handling exceptions
                System.out.println(throwable.getMessage());
                return null;
            });*/
    
            // Finally, close the client
            client.close();
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    运行结果

    请添加图片描述

    太长了就不截了

    直接结果

    {“headers”:{“Access-Control-Allow-Origin”:“*”,“x-acs-request-id”:“50F579AA-A36C-547C-9887-C9B597DBC519”,“Connection”:“keep-alive”,“Content-Length”:“110”,“Date”:“Sat, 29 Oct 2022 15:05:40 GMT”,“Content-Type”:“application/json;charset\u003dutf-8”,“x-acs-trace-id”:“2ca803d78068d3d55a936b22b44c5c68”},“body”:{“bizId”:“755622367055939907^0”,“code”:“OK”,“message”:“OK”,“requestId”:“50F579AA-A36C-547C-9887-C9B597DBC519”}}

    Java demo
    // This file is auto-generated, don't edit it. Thanks.
    package com.r.demo;
    
    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         * 使用AK&SK初始化账号Client
         * @param accessKeyId
         * @param accessKeySecret
         * @return Client
         * @throws Exception
         */
        public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // 您的 AccessKey ID
                    .setAccessKeyId(accessKeyId)
                    // 您的 AccessKey Secret
                    .setAccessKeySecret(accessKeySecret);
            // 访问的域名
            config.endpoint = "dysmsapi.aliyuncs.com";
            return new com.aliyun.dysmsapi20170525.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
            java.util.List<String> args = java.util.Arrays.asList(args_);
            com.aliyun.dysmsapi20170525.Client client = Sample.createClient("----------在这里写上自己的accessKeyId即可----------", "----------在这里写上自己的accessKeySecret即可----------");
            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                    .setSignName("阿里云短信测试")
                    .setTemplateCode("SMS_154950909")
                    .setPhoneNumbers("----------这里是你自己的手机号----------")
                    .setTemplateParam("{\"code\":\"1234\"}");
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                // 复制代码运行请自行打印 API 的返回值
                client.sendSmsWithOptions(sendSmsRequest, runtime);
                
                //这里我自己写了一个打印,要不然默认给的demo是不输出任何东西的,要不是收到短信了我还以为运行没反应呢。。。
                System.out.println("------------短信发送成功-------------");
                System.out.println("发送的手机号:" + sendSmsRequest.getPhoneNumbers() + "\n" +
                        "信息内容:" + sendSmsRequest.getTemplateParam());
                
            } catch (TeaException error) {
                // 如有需要,请打印 error
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // 如有需要,请打印 error
                com.aliyun.teautil.Common.assertAsString(error.message);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    运行结果

    请添加图片描述

    手机收到的短信

    请添加图片描述

  • 相关阅读:
    Multiplexer and Demultiplexer(多路复用器和解复用器)
    Linux版车辆检测器在英创板上的测试步骤
    在网站copy时自带的版权小尾巴以及“复制代码“,可以怎么实现
    CCF BDCI 返乡发展人群预测
    基于LinuxC语言实现的TCP多线程/进程服务器
    数据分析---pandas模块
    OpenResty入门之压测篇:压测工具界的 “悍马” wrk
    RT-Thread 5. ENV添加自定义模块
    About Random Numbers
    java selenium使用总结
  • 原文地址:https://blog.csdn.net/weixin_55452293/article/details/127920881