java接入创蓝253短信验证码的实例讲解
程序员文章站
2023-12-17 11:07:04
说明 项目是springboot框架
1.短信配置文件 包含验证码发送路径、用户名、密码
chuanglan.requesturl=
chuanglan.ac...
说明 项目是springboot框架
1.短信配置文件 包含验证码发送路径、用户名、密码
chuanglan.requesturl= chuanglan.account= chuanglan.pswd=
配置文件
具体值 查看官网 位置查看截图 红框已经标红
2.读取配置文件类
3.发送数据request实体类
public class smsvariablerequest { private string account; private string password; private string msg; private string params; private string sendtime; private string report; private string extend; private string uid; private string msgid; private string failnum; private string successnum; private string phone; public smsvariablerequest() { } public smsvariablerequest(string account, string password, string msg, string params) { this.account = account; this.password = password; this.msg = msg; this.params = params; } public smsvariablerequest(string account, string password, string msg, string params, string report,string phone) { this.account = account; this.password = password; this.msg = msg; this.params = params; this.report = report; this.phone = phone; } public string getaccount() { return this.account; } public void setaccount(string account) { this.account = account; } public string getpassword() { return this.password; } public void setpassword(string password) { this.password = password; } public string getmsg() { return this.msg; } public void setmsg(string msg) { this.msg = msg; } public string getsendtime() { return this.sendtime; } public void setsendtime(string sendtime) { this.sendtime = sendtime; } public string getreport() { return this.report; } public void setreport(string report) { this.report = report; } public string getextend() { return this.extend; } public void setextend(string extend) { this.extend = extend; } public string getuid() { return this.uid; } public void setuid(string uid) { this.uid = uid; } public string getparams() { return this.params; } public void setparams(string params) { this.params = params; } public string getmsgid() { return msgid; } public void setmsgid(string msgid) { this.msgid = msgid; } public string getfailnum() { return failnum; } public void setfailnum(string failnum) { this.failnum = failnum; } public string getsuccessnum() { return successnum; } public void setsuccessnum(string successnum) { this.successnum = successnum; } public string getphone() { return phone; } public void setphone(string phone) { this.phone = phone; } }
4.接收数据response实体类
public class smsvariableresponse { private string time; private string msgid; private string errormsg; private string failnum; private string successnum; private string code; public string gettime() { return this.time; } public void settime(string time) { this.time = time; } public string getmsgid() { return this.msgid; } public void setmsgid(string msgid) { this.msgid = msgid; } public string geterrormsg() { return this.errormsg; } public void seterrormsg(string errormsg) { this.errormsg = errormsg; } public string getcode() { return this.code; } public void setcode(string code) { this.code = code; } public string getfailnum() { return this.failnum; } public void setfailnum(string failnum) { this.failnum = failnum; } public string getsuccessnum() { return this.successnum; } public void setsuccessnum(string successnum) { this.successnum = successnum; } public string tostring() { return "smsvarableresponse [time=" + this.time + ", msgid=" + this.msgid + ", errormsg=" + this.errormsg + ", failnum=" + this.failnum + ", successnum=" + this.successnum + ", code=" + this.code + "]"; }
5.创蓝短信发送请求工具类
public class chuanglansmsutil { public static string sendsmsbypost(string path, string postcontent) { url url = null; try { url = new url(path); httpurlconnection httpurlconnection = (httpurlconnection)url.openconnection(); httpurlconnection.setrequestmethod("post"); httpurlconnection.setconnecttimeout(10000); httpurlconnection.setreadtimeout(2000); httpurlconnection.setdooutput(true); httpurlconnection.setdoinput(true); httpurlconnection.setrequestproperty("charset", "utf-8"); httpurlconnection.setrequestproperty("content-type", "application/json"); httpurlconnection.connect(); outputstream os = httpurlconnection.getoutputstream(); os.write(postcontent.getbytes("utf-8")); os.flush(); stringbuilder sb = new stringbuilder(); int httprspcode = httpurlconnection.getresponsecode(); if (httprspcode == 200) { bufferedreader br = new bufferedreader( new inputstreamreader(httpurlconnection.getinputstream(), "utf-8")); string line = null; while ((line = br.readline()) != null) { sb.append(line); } br.close(); return sb.tostring(); } } catch (exception e) { e.printstacktrace(); } return null; } }
6.发送短信验证码具体代码
@override public map<string, object> send(string content, string mobilenumber) { string report = "true"; content="【】您的验证码是:"+content; smsvariablerequest smsvariablerequest = new smsvariablerequest(chuanglansmsconstants.getaccount(), chuanglansmsconstants.getpswd(), content, null, report,mobilenumber); string requestjson = json.tojsonstring(smsvariablerequest); string response = chuanglansmsutil.sendsmsbypost(chuanglansmsconstants.getrequesturl(), requestjson); smsvariableresponse smsvariableresponse = (smsvariableresponse)json.parseobject(response, smsvariableresponse.class); system.out.println("response tostring is : " + smsvariableresponse); if(null!=smsvariableresponse&&!"0".equals(smsvariableresponse.getcode())){ if(log.isinfoenabled()){ log.info(smsvariableresponse); } } return null; }
7.注意事项
(1)注意短信签名 【xxxx】 必须是 创蓝短信审核通过的签名 如果是测试 可以使用【253云通讯】默认的 没有问题
(2)创蓝短信返回的错误并不是很明确 不要只注意控制台创蓝返回的错误 注意看创蓝短信在线api
(3)注意看在线demo不建议看离线demo 会有在线demo已经更新离线demo还未更新的情况
(4)如果需要判断验证码是否发送成功 直接"0".equals(smsvariableresponse.getcode()) “0”即发送成功
以上这篇java接入创蓝253短信验证码的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。