SpringBoot实现发送短信的示例代码

 更新时间:2019年04月23日 10:00:59   作者:Sans_  
这篇文章主要介绍了SpringBoot实现发送短信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一.说明

https://office.ucpaas.com/ 注册账号并且认证为个人开发者(需要身份证),这个不难,不多说了

短信的三方平台有许多,对于选择什么平台要根据个人业务场景选择,这里只是DEMO

二.创建平台项目

创建平台项目后可以获得短信基础配置,在调用短信接口时使用

三.创建短信模板

模板动态参数设置规则为{1}{2}{3}...{n} (注意:在调用时参数之间拼接用逗号作为间隔符,这个见代码描述)

四.使用RestTemplate调用短信接口

Spring Boot 版本:2.1.3

项目中使用了阿里的开源框架FastJson,用于JSON格式字符串与JSON对象及javaBean之间的转换 ,Maven依赖如下

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>2.1.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.45</version>
    </dependency>
</dependencies>

建立RestTemplate配置类,将RestTemplate注入容器中

/**
 * RestTemplate配置类
 * @Author Sans
 * @CreateTime 2019/4/2 09:55
 */
@Configuration
public class RestTemplateConfig {
  @Bean
  public RestTemplate restTemplate() {
    return new RestTemplate();
  }
}

Controller测试

/**
 * 测试短信DEMO
 * @Author Sans
 * @CreateTime 2019/4/2 09:39
 */
@RestController
@RequestMapping("/sms")
public class TestController {

  @Autowired
  private RestTemplate restTemplate;

  /**
   * 单发短信测试
   * @Author: Sans
   * @CreateTime: 2019/4/2 10:06
   */
  @RequestMapping(value = "/sendsmsTest",method = RequestMethod.GET)
  public String sendsmsTest(){
    //单发短信API
    String url = "https://open.ucpaas.com/ol/sms/sendsms";
    JSONObject jsonObject = new JSONObject();
    //基础配置,在开发平台认证后获取
    jsonObject.put("sid","ad024f8****************05d1614");
    jsonObject.put("token","5ddbf62d4d****************e27402c");
    jsonObject.put("appid","0ceaca4708****************76ec45f");
    //模板ID,在开发平台创建模板对应的模板ID
    jsonObject.put("templateid", "432116");
    //模板对应的参数,参数之间拼接用逗号作为间隔符
    jsonObject.put("param", "1315,500");
    //要发送的手机号
    jsonObject.put("mobile", "用户的手机号");
    //用户透传ID,随状态报告返回,可以不填写
    jsonObject.put("uid","");
    String json = JSONObject.toJSONString(jsonObject);
    //使用restTemplate进行访问远程服务
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
    HttpEntity<String> httpEntity = new HttpEntity<String>(json, headers);
    String result = restTemplate.postForObject(url, httpEntity, String.class);
    return result;
  }

  /**
   * 群发短信测试
   * @Author: Sans
   * @CreateTime: 2019/4/2 11:23
   */
  @RequestMapping(value = "/sendBatchsmsTest",method = RequestMethod.GET)
  public String sendBatchsmsTest(){
    //群发短信API
    String url = "https://open.ucpaas.com/ol/sms/sendsms_batch";
    JSONObject jsonObject = new JSONObject();
    //基础配置,在开发平台认证后获取
    jsonObject.put("sid","ad024f8****************05d1614");
    jsonObject.put("token","5ddbf62d4d****************e27402c");
    jsonObject.put("appid","0ceaca4708****************76ec45f");
    //模板ID,在开发平台创建模板对应的模板ID
    jsonObject.put("templateid", "432116");
    //模板对应的参数,参数之间拼接用逗号作为间隔符
    jsonObject.put("param", "1315,500");
    //群发多个手机号之间要用逗号作为间隔符
    jsonObject.put("mobile", "用户的手机号A,用户的手机号B");
    //用户透传ID,随状态报告返回,可以不填写
    jsonObject.put("uid","");
    String json = JSONObject.toJSONString(jsonObject);
    //使用restTemplate进行访问远程服务
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
    HttpEntity<String> httpEntity = new HttpEntity<String>(json, headers);
    String result = restTemplate.postForObject(url, httpEntity, String.class);
    return result;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot使用freemarker导出word文件方法详解

    SpringBoot使用freemarker导出word文件方法详解

    这篇文章主要介绍了SpringBoot使用freemarker导出word文件方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-11-11
  • 详解在Spring3中使用注解(@Scheduled)创建计划任务

    详解在Spring3中使用注解(@Scheduled)创建计划任务

    本篇文章主要介绍了详解在Spring3中使用注解(@Scheduled)创建计划任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Java代码如何判断linux系统windows系统

    Java代码如何判断linux系统windows系统

    这篇文章主要介绍了Java代码如何判断linux系统windows系统问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • SpringController返回值和异常自动包装的问题小结

    SpringController返回值和异常自动包装的问题小结

    今天遇到一个需求,在不改动原系统代码的情况下,将Controller的返回值和异常包装到一个统一的返回对象中去,下面通过本文给大家介绍SpringController返回值和异常自动包装的问题,需要的朋友可以参考下
    2024-03-03
  • 浅谈spring的重试机制无效@Retryable@EnableRetry

    浅谈spring的重试机制无效@Retryable@EnableRetry

    这篇文章主要介绍了浅谈spring的重试机制无效@Retryable@EnableRetry,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 在MyBatisPlus中使用@TableField完成字段自动填充的操作

    在MyBatisPlus中使用@TableField完成字段自动填充的操作

    这篇文章主要介绍了在MyBatisPlus中使用@TableField完成字段自动填充的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java抽象类原理与用法实例详解

    Java抽象类原理与用法实例详解

    这篇文章主要介绍了Java抽象类原理与用法,结合实例形式详细分析了Java抽象类相关概念、原理、定义、使用方法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • springboot添加https服务器的方法

    springboot添加https服务器的方法

    这篇文章主要介绍了springboot添加https服务器的方法,小编在android开发中发现很多app都是https访问的,为了方便测试,自己搭建了一个https服务器,需要的朋友可以参考下
    2017-11-11
  • Jackson序列化丢失泛型的解决

    Jackson序列化丢失泛型的解决

    这篇文章主要介绍了Jackson序列化丢失泛型的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java Chassis3熔断机制的改进路程技术解密

    Java Chassis3熔断机制的改进路程技术解密

    这篇文章主要介绍了Java Chassis 3技术解密之熔断机制的改进路程实例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论