最近在做用户登陆注册模块的时候用到了采用第三方短信接口发送短信验证码,查询了一些网站和参考了一些别人的方法,用的是网建短信通的,也可以阿里云平台的或者别的平台的。
首先还是登陆注册用户信息,然后进入这个网站的首页之后我们先进入修改短信密钥拿到自己的安全密钥,然后进入上面的短信API接口页面

可以看到他们官方给出了一个演示demo

import java.io.UnsupportedEncodingException;
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;public class SendMsg_webchinese {public static void main(String[] args)throws Exception
{HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.api.smschinese.cn");
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全秘钥"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","验证码:8888")};
post.setRequestBody(data);client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:"+statusCode);
for(Header h : headers)
{System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("gbk"));
System.out.println(result); //打印返回消息状态
post.releaseConnection();
}
}

代码还是很容易就能看懂的,我们只需要改的是

NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全秘钥"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","验证码:8888")};

可以看到这个Uid就是刚刚我们注册的用户名,key是刚刚获取到的密钥,smsMob就是要发送信息的手机号了,smsText就是要发送的信息。
所以把上面的演示demo稍微修改一下就可以直接使用了:

public static HashMap<String,String> getMessageStatus(String phone)throws Exception{HashMap<String,String> map=new HashMap<String,String>();String code=VerifyingCode();HttpClient client = new HttpClient();PostMethod post = new PostMethod("http://gbk.api.smschinese.cn");//该第三方短信服务地址post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码NameValuePair[] data = {new NameValuePair("Uid", "*****"),new NameValuePair("Key", "*********"),new NameValuePair("smsMob",phone),new NameValuePair("smsText","您的验证码是"+code+",有效时间为10分钟,请尽快验证。")};map.put("code",code);post.setRequestBody(data);client.executeMethod(post);Header[] headers = post.getResponseHeaders();int statusCode = post.getStatusCode();System.out.println("statusCode:"+statusCode);for(Header h : headers){System.out.println(h.toString());}String result = new String(post.getResponseBodyAsString().getBytes("gbk"));System.out.println(result); //打印返回消息状态,1表示发送成功,其他的小于0的为失败map.put("result", result);post.releaseConnection();return map;}//生成六位随机数public static String VerifyingCode(){Random random=new Random();String code="";for (int i=0;i<6;i++){code+=random.nextInt(10);}System.out.println(code);return code;}

我的想法就是定义一个hashmap将生成的验证码与发送的状态放在map里面,那么在service层上进行业务处理的时候就可以直接拿到我们刚刚发送的验证码进行业务处理。
最后还需要导入官方给的三个jar包,依赖如下

<dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version>
</dependency>

Java实现第三方短信接口发送短信验证码相关推荐

  1. tp6框架结合阿里短信接口发送短信并记录redis

    tp6框架结合阿里短信接口发送短信并记录redis 1> 开通阿里云短信服务 2> 安装redis服务 3>config配置文件 创建sms.php 文件,配置阿里云短信信息 ret ...

  2. java实现调用短信接口发送短信

    如何调用java接口,进行短信的发送呢?现在几乎每一个平台都需要进行验证码短信或者通知类短信的发送,下面提供java接口的DEMO供大家下载: Java短信接口JDK点击下载 或者直接进入官网测试页面 ...

  3. php 预防循环发短信_php短信接口发送短信失败,罪魁祸首原来在这里

    随着国民经济的高速发展,短信的应用也逐渐商业化,很多企业.商家开始使用php短信接口来进行推广.营销或内部管理,只是个别的商家在应用php短信接口的时候却遇到了短信发送失败的现象,这到底是因为商家操作 ...

  4. 【SpringBoot深入浅出系列】SpringBoot之调用腾讯云短信接口发送短信

    目录 一.开发前准备 1.创建签名 2.创建正文模板管理 3.创建应用 4.创建secretId和secretKey 二.开发 1.创建 Spring Initializr 项目 tengxunsms ...

  5. NODE.JS如何开发短信接口发送短信验证码/短信通知demo示例

    用户将收到的短信验证码填写到网站,网站对用户填写的验证码进行校验,如果一致,说明用户填写的手机号码是正确的,否则验证失败. 在开通手机短信验证功能之前,需要将网站同接口进行对接,对接的相关说明可以访问 ...

  6. 使用移动云MAS HTTP接口发送短信BASE64加密中文乱码

    前阵子有个用移动短信接口发送短信的相关业务,遇到了问题记录一下 为了不使项目重启全部是用jsp编写的,前几步按照移动给的HTTP接口文档来 没有问题 最后进行BASE64加密的时候出现了中文字符乱码的 ...

  7. TP5 短信宝 发送短信验证码

    一.请求发送短信接口 public function sendCode(){//接收手机号$data['phone'] = input('get.phone');//判断是否接到手机号$validat ...

  8. java短信通知_通过第三方接口发送短信验证码/短信通知(推荐)

    需求:将首次交付密码为公共默认密码的方式改为点击入职功能,用短信方式发送系统自动生成的八位含数字.大小写字母和特殊符号生成的密码.短信发送服务由云通信http://www.yuntongxun.com ...

  9. php 请求第三方接口发送短信验证码及注册手机号码

    1:为什么要用短信验证码: 防范XSS和CSRF 2:php中怎样调用第三方接口(短信宝/京东万象/阿里云/容连云):post请求使用Curl();get请求使用file_get_contents() ...

  10. java短信接口发送的这三种短信,你收到过几种?

    不同的行业应用java短信接口的用途不一样,但大多数都是用于传递消息.加强服务.提高安全性,因而一般情况下java短信接口会发送通知类短信.问候类短信.营销类短信及广告类短信,具体的让我们一起来了解下 ...

最新文章

  1. 汇编call指令详解_我也能写出雷军的的代码吗?最好的汇编语言入门教程在这里!...
  2. 人工智能产业的发展是什么样的呢?
  3. ORACLE SQL语句总结2
  4. OpenCV训练分类器
  5. windows服务器的DDOS防御,
  6. android 没有 layout_above,在RelativeLayout布局中layout_above不起作用
  7. python----关键字参数
  8. MS-SQL中取年-月
  9. Spring Cache 介绍
  10. mysql的配置文件解释
  11. samba 部署和优化
  12. visual studio运行时库MT、MTd、MD、MDd的区别
  13. 学子商城代码2(项目 第十六阶段)
  14. nProtect GameGuard 的破解
  15. 数据结构与算法: Asymptotic Analysis 渐近分析
  16. [NodeBB]NodeBB论坛站点管理小结
  17. 解决MarkDown上传本地图片无法显示
  18. 南天收藏库为什么大不了_那么,密码有什么大不了的呢?
  19. PaperFree-论文查重
  20. 计算机dvd打不开,我的电脑DVD打不开。怎么办?

热门文章

  1. 第三方验收测试-功能测试方案
  2. 某企业信息安全体系整体建设方案规划方案毕业设计毕业答辩
  3. git bash批量dos2unix
  4. 【网络仿真】ns-3基础(下)
  5. 微信小程序口令红包-语音识别
  6. macOS图像文件不能正常显示缩略图预览怎么办?
  7. 一个很有意思的熊猫免疫器
  8. 什么是计算机数字代码,计算机代码1—10这10个数字表示什么意思 例如:数字1 计算机代码00001 这是什么意思...
  9. Matlab求解微分、积分方程
  10. clion配置opencv