我是靠谱客的博主 含糊电脑,最近开发中收集的这篇文章主要介绍基于SpringBoot项目的SMS短信业务实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.注册SMS短信通账号
SMS官网地址:
在这里插入图片描述
(1)点击用户注册:进入用户注册页面

(2)用户注册完成后:登录用户,用户的登录密码就是短信的验证码。
在这里插入图片描述
一开始有免费的5条短信
(3)查看短信密钥:短信密钥在左侧菜单栏中修改短信密钥接口密钥
记住这个短信密钥

导入所需要的依赖

<dependencies>
		<!--SpringBoot整合mybatis时需要依赖http://mybatis.org/spring/boot.html-->
		<!--我没有用测试类测试,直接创建的SpringBootApplication的启动类-->
        <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
             <version>${mybatis.version}</version>
        </dependency>
        
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.0.1</version>
        </dependency>
    </dependencies>
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})

//@SpringBootApplication不加上这个(exclude= {DataSourceAutoConfiguration.class})会报url的请求错误
//Description:
//Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
//Reason: Failed to determine a suitable driver class

public class SendMessageUtil {
    public static void main(String[] args) {
        SpringApplication.run(SendMessageUtil.class, args);
    }
}
    @Service
    public class smsService{
    	//设置SMS_Url的路径,public static final可以让访问变得很方便,而且不会被修改。一般可以放配置信息,还有一些状态码的定义。
        public static final String SMS_Url="http://sms.webchinese.cn/web_api/";
        public Integer send(String Uid,String key,String sendPhoneNum,String desc){
        	//HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。
            HttpClient httpClient=new HttpClient();
            //java实现POST请求
            PostMethod postMethod=new PostMethod(SMS_Url);
            postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=gbk");
            NameValuePair[] data={
                    new NameValuePair("Uid","super马"),//用户名
                    new NameValuePair("Key","xxxxxxxxxxxxxxxx"),//秘钥
                    new NameValuePair("smsMob","18xxxxxxxxx"),//这个手机号码是接收短信的手机号码   
                    new NameValuePair("smsText", "阿狸")//发送的内容
            };
            postMethod.setRequestBody(data);
            try{
                httpClient.executeMethod(postMethod);
            }catch (Exception e){
                e.printStackTrace();
            }
            Header[] headers=postMethod.getRequestHeaders();
            int statusCode=postMethod.getStatusCode();
            System.out.println("statusCode:"+statusCode);
            for (Header h:headers) {
                System.out.println(h.toString());
            }
            String result="";
            try {
                result =new String(postMethod.getResponseBodyAsString().getBytes("gbk"));
            }catch (Exception e){
                e.printStackTrace();
            }
            postMethod.releaseConnection();
            return Integer.parseInt(result);
        }
    }
	//错误异常的处理
    public static String getMessage(Integer code){
        String message;
        if(code > 0 ) {
            message = "SMS-f发送成功!短信量还有" + code + "条";
        }else if(code == -1){
            message = "SMS-没有该用户账户";
        }else if(code == -2){
            message = "SMS-接口密钥不正确";
        }else if(code == -21){
            message = "SMS-MD5接口密钥加密不正确";
        }else if(code == -3){
            message = "SMS-短信数量不足";
        }else if(code == -11){
            message = "SMS-该用户被禁用";
        }else if(code == -14){
            message = "SMS-短信内容出现非法字符";
        }else if(code == -4){
            message = "SMS-手机号格式不正确";
        }else if(code == -41){
            message = "SMS-手机号码为空";
        }else if(code == -42){
            message = "SMS-短信内容为空";
        }else if(code == -51){
            message = "SMS-短信签名格式不正确接口签名格式为:【签名内容】";
        }else if(code == -6){
            message = "SMS-IP限制";
        }else{
            message = "其他错误";
        }
        return message;
    }
    
@RestController
    public class SMSController{
        @Autowired
        private smsService service;
        @GetMapping("/sms/")
        public Integer smssend(){
        						//用户名Id,密钥,手机号码(这个手机号码我写的是自己的手机号码),文本的内容
            return service.send("super马", "xxxxxxxxxxxxx", "18xxxxxxxxx","阿狸");
        }
    }

配置bootstrap.yml文件
设置端口号,不设置端口号的话,为默认的端口号8080端口号
打开网页
输入路径:就是Controller层的GetMapping自己设置的路径
在这里插入图片描述
显示 1 代表短信发送成功
在这里插入图片描述

最后

以上就是含糊电脑为你收集整理的基于SpringBoot项目的SMS短信业务实现的全部内容,希望文章能够帮你解决基于SpringBoot项目的SMS短信业务实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部