说明 项目是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短信验证码的更多相关文章

  1. Java如何调取创蓝253短信验证码

    基于创蓝253短信服务平台的Java调用短信接口API package com.bcloud.msg.http; import java.io.ByteArrayOutputStream; impor ...

  2. java 随机生成6位短信验证码

    生成6位随机数字其实很简单,只需一行代码,具体如下: String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000) ...

  3. Node 接入阿里云实现短信验证码

    本文介绍在案例云开通短信服务的流程以及在Node项目中使用的方法. 一.开通阿里云短信服务 登陆阿里云,然后进入 https://dysms.console.aliyun.com/dysms.htm  ...

  4. PHP获取短信验证码

    PHP如何获取短信验证码?以下是创蓝253短信平台下的PHP接口代码案例:   <?php header("Content-type:text/html; charset=UTF-8& ...

  5. JavaWeb-SpringSecurity使用短信验证码登陆

    相关博文 JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信 传送门 系列博文 项目已上传至guthub 传送门 JavaWeb-SpringSecurity初认识 传送门 Java ...

  6. C# 开发(创蓝253)手机短信验证码接口

    创蓝253: https://www.253.com/ #region 获取手机验证码(创蓝253) /// <summary> /// 获取手机验证码(创蓝253) /// </s ...

  7. 云平台短信验证码通知短信java/php/.net开发实现

    一.本文目的 大部分平台都有一个接入发送短信验证码.通知短信的需求.虽然市场上大部分平台的接口都只是一个非常普通的HTTP-GET请求,但终归有需要学习和借鉴使用的朋友. 本文的初衷是主要提供学习便利 ...

  8. 四:java调接口实现发送手机短信验证码功能

    1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...

  9. java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载

    短信验证码跟自己在Servlet画的验证码不一样,我们不用管短信验证码是怎么产生的,我们只需要关注如何调用短信验证码,在短信验证码里面添加 自己需要的随机数或者其他的内容. 现在直接上流程 第一步找一 ...

随机推荐

  1. 组合模式(Composite)

    组合模式(Composite) 组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图: 直接来看代码: [java] view plaincopypublic class Tr ...

  2. 企业实战Nginx+Tomcat动静分离架构的技术分享

    Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat.Re ...

  3. nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37

    一:开始Nginx的SSL模块 1.1 Nginx如果未开启SSL模块,配置Https时提示错误 1 nginx: [emerg] the "ssl" parameter requ ...

  4. Yii2如何添加sql日志记录的配置信息

    在使用Yii2框架的时候,常常会出现没有sql日志记录的问题.在代码里一句一句的打印sql语句也不现实.所以就要用文件记录起来. 在 config/web.php 里面的 log配置中增加如下配置 [ ...

  5. Hbuilder app开发,使用mui.ajax和服务器交互,后台获取不到值,显示null的解决方法

    先上一个能用的js代码: function login() { var uname=document.getElementById("username").value.trim() ...

  6. Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出

    两道64位栈溢出,思路和之前的32位溢出基本一致,所以放在一起 在这两道中体现的32位和64位的主要区别在于函数参数传递的方式 在32位程序运行中,函数参数直接压入栈中 调用函数时栈的结构为:调用函数 ...

  7. CSS中line-height与vertical-align

    参考文章: 深入了解CSS的line-height属性 Vertical-Align: 你需要知道的所有事[译] Vertical-Align: All You Need To Know 1.什么是行 ...

  8. ajax xmlhttp 局部显示另一个页面

    function loadXMLDoc(url) { var xmlhttp; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera ...

  9. Cairo-Dock 系统关机无效

    正文 背景 Cairo-Dock 设置为开机自己主动启动后.系统菜单条里的关机选项就无效了,命令行里能够使用命令关机. 搜索过程 这次google找到的结果让我非常失望,于是仅仅好百度了. 在百度贴吧 ...

  10. jsp内置对象 的使用范围和类型【说明】

    jsp内置对象 jsp内置对象有以下9种,我们会在后面的章节中分别介绍他们.这9种对象例如以下: 名称 类型 使用范围 request javax.servlet.http.HttpServletRe ...