java 使用网建SMS发送短信验证码
首先, 注册并登录网建用户, 新注册用户将获得5条的测试短信
网建短信通地址: http://sms.webchinese.cn/default.shtml
注册账号在此就不多做赘述了, 直接上代码
1. 在pom.xml文件中导入依赖
<!--短信依赖-->
<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>
2. 新建一个短信发送工具类SendMessageUtil
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod; import java.util.Random; public class SendMessageUtil {
private static final String SMS_Url = "http://sms.webchinese.cn/web_api/"; /**
* @param Uid SMS用户id : SMS账号
* @param Key 接口秘钥:SMS登录可查(非登录密码)
* @param sendPhoneNum 短信发送目标号码
* @param desc 短信内容
* @return Integer(1:成功码,其他失败,具体参见注释)
*/
public static Integer send(String Uid,String Key,String sendPhoneNum,String desc){ HttpClient client = new HttpClient();
PostMethod post = new PostMethod(SMS_Url);
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码 //设置参数
NameValuePair[] data = {
new NameValuePair("Uid", Uid),
new NameValuePair("Key", Key),//秘钥
new NameValuePair("smsMob", sendPhoneNum),
new NameValuePair("smsText", desc)
}; post.setRequestBody(data); try {
client.executeMethod(post);
} catch (Exception e) { e.printStackTrace(); } Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:" + statusCode);
for (Header h : headers) {
System.out.println(h.toString());
} String result ="";
try {
result = new String(post.getResponseBodyAsString().getBytes("gbk"));
} catch (Exception e) { e.printStackTrace(); } post.releaseConnection(); return Integer.parseInt(result);
}
/**
* -1 没有该用户账户
-2 接口密钥不正确 [查看密钥]不是账户登陆密码
-21 MD5接口密钥加密不正确
-3 短信数量不足
-11 该用户被禁用
-14 短信内容出现非法字符
-4 手机号格式不正确
-41 手机号码为空
-42 短信内容为空
-51 短信签名格式不正确接口签名格式为:【签名内容】
-6 IP限制
大于0 短信发送数量
以上作为补充
*/
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;
} /**
* 随机生成6位验证码
* @return
*/
public static String getRandomCode(Integer code){
Random random = new Random();
StringBuffer result= new StringBuffer();
for (int i=0;i<code;i++){
result.append(random.nextInt(10));
}
return result.toString();
}
}
3. 在Controller层方法中调用
SendMessageUtil.send("网建短信通账号","秘钥","收件人手机号","发送内容");
4. 可以在控制台打印输出短信发送状态, 直接调用SendMessageUtil类中的getMessage方法即可
java 使用网建SMS发送短信验证码的更多相关文章
- java 中国网建实现发送短信验证码
现在中国网建上注册一个自己的账户, 然后里面有代码案例,也有相应的下载jar包的地址 package com.direct.note; import java.io.IOException; impo ...
- java 阿里云接口实现发送短信验证码
此刻自己做的小项目中,需要用到手机发送短信验证码实现注册功能,于是就去阿里云注册了账号,并实现随机发送验证码的功能 第一步:在阿里云官网登录注册 已有支付宝或淘宝的账号可以直接登录,最后需要实名认 ...
- java + maven 实现发送短信验证码功能
如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...
- Java 实现手机发送短信验证码
Java 实现手机发送短信验证码 采用引入第三方工具的方式,网上查了半天,发现简单的实现方式便是注册一个中国网建的账号,新建账号的时候会附带赠几条免费短信,彩信 ,之后想要在使用就得花钱了.简单的操作 ...
- 阿里云短信服务发送短信验证码(JAVA开发此功能)
开发此功能需注册阿里云账号,并开通短信服务(免费开通) 充值后,不会影响业务的正常使用!(因为发送验证类短信:1-10万范围的短信是0.045元/条).开发测试使用,充2块钱测试足够了 可参考阿里云官 ...
- java发送短信验证码的功能实现
总结一下发送短信验证码的功能实现 (题外话:LZ是在腾讯云买的第三方(山东鼎信)短信服务平台的接口,1块钱20次的套餐来练手,哈哈,给他们打个广告,有需要的可以去购买哈,下面是购买链接短信服务平台购买 ...
- java实现发送短信验证码
java实现短信验证码发送 由于我们使用第三方平台进行验证码的发送,所以首先,我们要在一个平台进行注册. 在这里我选择是秒嘀科技,因为新人注册会赠送十元,足够测试使用了. 注册完成后,我们需要获取自己 ...
- android发送短信验证码并自动获取验证码填充文本框
android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com) ...
- Python3实现发送邮件和发送短信验证码
Python3实现发送邮件和发送短信验证码 Python3实现发送邮件: import smtplib from email.mime.text import MIMEText from email. ...
随机推荐
- 史上最全NOIP初赛知识点
CSP-J/S 第一轮知识点选讲 \(NOIP\)(全国青少年信息学奥林匹克竞赛)于2019年取消.取而代之的是由\(CCF\)推出的非专业级软件能力认证,也就是现在的\(CSP-J/S\).作为一名 ...
- CF1076D Edge Deletion 最短路树
问题描述 Codeforces 洛谷(有翻译) 题解 最短路树,是一棵在最短路过程中构建的树. 在\(\mathrm{Dijkstra}\)过程中,如果最终点\(y\)是由点\(x\)转移得到的,则在 ...
- MySQL单表查询 条件查询,分组
目录 1 where 条件查询 between like not in 2 group by 分组 聚合函数:max min sum avg count 3 having 过滤 4 distinct ...
- 在分页中,删除操作后,AJAX重载刷新当前页
需求 分页中,在 删除 和 编辑 完成后,AJAX重载刷新 当前页 ,而不是跳转到 第一页 实现步骤 添加两个的 input 控件,用来存储 当前页数 和 记录总条数(非必须,能有方法获取到这两个值即 ...
- 为什么accpet会重新返回一个套接字
在服务器端,socket()返回的套接字用于监听(listen)和接受(accept)客户端的连接请求.这个套接字不能用于与客户端之间发送和接收数据. accept()接受一个客户端的连接请求,并返回 ...
- Linux性能优化实战学习笔记:第五十七讲
一.上节回顾 上一节,我带你一起梳理了常见的性能优化思路,先简单回顾一下.我们可以从系统和应用程序两个角度,来进行性能优化. 从系统的角度来说,主要是对 CPU.内存.网络.磁盘 I/O 以及内核软件 ...
- oracle--CRS-0215 : Could not start resource 'ora.node2.ons'.
01,问题描述 安装10G+RAC集群,在node2进行vipca操作的时候发现这个问题 02,问题解决 原因是少了host的回环地址,当时删除错了 添加进去即可 127.0.0.1 localhos ...
- 计时器StopWatch的几种写法
下面提供三种计时器的写法供大家参考,大家可以自行选择自己钟爱的使用. 写法一(Spring 包提供的计时器): import java.text.NumberFormat; import java.u ...
- .NET Core:过滤器
过滤器的作用是在 Action 方法执行前或执行后做一些加工处理.使用过滤器可以避免Action方法的重复代码.功能上更贴合业务的使用过滤器. 在Startup中的ConfigureServices方 ...
- 文件上传之靶场upload-labs (11-20)
第十一关 strrpos() 函数查找字符串在另一字符串中最后一次出现的位置 substr() 函数返回字符串的一部分 文件保存的方式是上传路径+随机时间+截取的文件后缀 其中上传路径可控,可以利用这 ...