概述
1.注册SMS短信通账号
SMS官网地址:
(1)点击用户注册:进入用户注册页面
(2)用户注册完成后:登录用户,用户的登录密码就是短信的验证码。
(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文件
打开网页
输入路径:就是Controller层的GetMapping自己设置的路径
显示 1 代表短信发送成功
最后
以上就是含糊电脑为你收集整理的基于SpringBoot项目的SMS短信业务实现的全部内容,希望文章能够帮你解决基于SpringBoot项目的SMS短信业务实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复