java接入创蓝253短信验证码的实例讲解

 更新时间:2018年01月05日 08:51:37   作者:不再_单纯  
下面小编就为大家分享一篇java接入创蓝253短信验证码的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

说明 项目是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短信验证码的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java虚拟机处理异常的最佳方式

    Java虚拟机处理异常的最佳方式

    这篇文章主要给大家介绍了关于Java虚拟机处理异常的最佳方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 详解spring集成mina实现服务端主动推送(包含心跳检测)

    详解spring集成mina实现服务端主动推送(包含心跳检测)

    本篇文章主要介绍了详解spring集成mina实现服务端主动推送(包含心跳检测),具有一定的参考价值,与兴趣的可以了解一下
    2017-09-09
  • Java 实战练手项目之酒店管理系统的实现流程

    Java 实战练手项目之酒店管理系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现一个酒店管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Java中的==使用方法详解

    Java中的==使用方法详解

    这篇文章主要介绍了Java中“==”的使用方法,,==可以使用在基本数据类型变量和引用数据类型变量中,equals()是方法,只能用于引用数据类型,需要的朋友可以参考下
    2022-09-09
  • Java通俗易懂系列设计模式之适配器模式

    Java通俗易懂系列设计模式之适配器模式

    这篇文章主要介绍了Java通俗易懂系列设计模式之适配器模式,对设计模式感兴趣的同学,一定要看一下
    2021-04-04
  • 详解Java中的reactive stream协议

    详解Java中的reactive stream协议

    Stream大家应该都很熟悉了,java8中为所有的集合类都引入了Stream的概念。优雅的链式操作,流式处理逻辑,相信用过的人都会爱不释手。本文将详细介绍Java中的reactive stream协议。
    2021-06-06
  • 详解 JAVA的回调机制CallBack

    详解 JAVA的回调机制CallBack

    最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义,本文给大家介绍JAVA的回调机制CallBack,感兴趣的朋友一起学习
    2016-04-04
  • Java 遍历list和map的方法

    Java 遍历list和map的方法

    这篇文章主要介绍了Java 遍历list和map的方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • SpringBoot2.3集成ELK7.1.0的示例代码

    SpringBoot2.3集成ELK7.1.0的示例代码

    这篇文章主要介绍了SpringBoot2.3集成ELK7.1.0的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • SpringMVC和Ajax的交互详解(手工处理)

    SpringMVC和Ajax的交互详解(手工处理)

    Ajax即异步的 JavaScript和XML,是一种无需重新加载整个网页的情况下,能够更新部分模块的网页技术,下面这篇文章主要给大家介绍了关于SpringMVC和Ajax交互的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论