简要:本篇文章,主要介绍怎样利用第三方平台实现短信验证码的发送问题。--博客园老牛大讲堂

1、Java发送(验证码,短信)原理--博客园老牛大讲堂

  1、首先用户选定一个第三方平台。

  2、进行一系列操作,得到这个平台的两个固定变量

  3、之后进行请求这个平台。(这个平台就会向你指定的手机发送验证码)

2、java发送验证码,钱谁出?--博客园老牛大讲堂

  这个问题有点弱智,但是我刚开始就是这么关心的。可以告诉初学者

  钱!是开发者出的!2017年4月份。短息验证码的价格估计是0.038元/条左右。

  下面说开发。

3、第三方平台《秒滴科技》注册与登录。--博客园老牛大讲堂

  建立个模板,得到审核通过。

  

  得到模板的几个值--博客园老牛大讲堂

  

4、后端代码:--博客园老牛大讲堂

  

package Tools;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;import org.apache.commons.codec.digest.DigestUtils;public class MessageToos {//博客园老牛大讲堂private String ACCOUNT_SID="*****************";//网页上得到的值private String AUTH_TOKEN="***********************";//网页上得到的值private String BASE_URL="https://api.miaodiyun.**********";//路径//主要完成接受一个号码,发送短信,并返回验证码信息。  ----- 博客园老牛大讲堂public int sentMessage(String phone) throws UnsupportedEncodingException, IOException {int a=getRandNum();//生成一个6位验证码  ----- 博客园老牛大讲堂String smsContent = "【老牛大讲堂科技】验证码:{"+a+"},打死都不要告诉别人哦!";//这个要与模板保持一致String url = BASE_URL + "/industrySMS/sendSMS";String body = "accountSid=" + ACCOUNT_SID + "&to=" + phone + "&smsContent="+ smsContent + createCommonParam();String result = post(url, body);// 提交请求return a;
//        System.out.println("result:" + System.lineSeparator() + result);
    }public  String createCommonParam()  //----- 博客园老牛大讲堂
    {// 时间戳SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String timestamp = sdf.format(new Date());// 签名String sig = DigestUtils.md5Hex(ACCOUNT_SID + AUTH_TOKEN + timestamp);return "&timestamp=" + timestamp + "&sig=" + sig + "&respDataType=" + "json";}//----- 博客园老牛大讲堂public String post(String url, String body) throws UnsupportedEncodingException, IOException{
//        System.out.println("url:" + System.lineSeparator() + url);
//        System.out.println("body:" + System.lineSeparator() + body);String result = "";OutputStreamWriter out = null;BufferedReader in = null;URL realUrl = new URL(url);URLConnection conn = realUrl.openConnection();// 设置连接参数conn.setDoOutput(true);conn.setDoInput(true);conn.setConnectTimeout(5000);conn.setReadTimeout(20000);// 提交数据out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");out.write(body);out.flush();// 读取返回数据in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line = "";boolean firstLine = true; // 读第一行不加换行符while ((line = in.readLine()) != null){if (firstLine){firstLine = false;} else{result += System.lineSeparator();}result += line;}return result;}//生成6位验证码  ----- 博客园老牛大讲堂public static int getRandNum() {return 1 + (int)(Math.random() * ((999999 - 1) + 1));}public static void main(String[] args) throws UnsupportedEncodingException, IOException{MessageToos mess=new MessageToos();mess.sentMessage("187********");//这是你想要向哪个手机发送手机号}}

  

转载于:https://www.cnblogs.com/laonniudajiangtang/p/6732580.html

Java实现 第三方的验证码发送问题--博客园老牛大讲堂相关推荐

  1. java 模拟登陆exe_Java简单模拟登陆和爬虫实例---博客园老牛大讲堂

    鉴于有人说讲的不清楚,我这里再详细补充一下:更新日期:2017-11-23 本片文章适合初学者,只简单说了一下爬虫怎么用,和一个简单的小实例.不适合你的就可以不看了.----博客园老牛大讲堂 1.什么 ...

  2. mysql链表_MySql链表语句--博客园老牛大讲堂

    为什么链表?--博客园老牛大讲堂 因为表与表之间有关系,而且查询时需要两张表的某些数据. 链表的前提是:表与表之间必须设置主外键吗? 不是的,其实表与表之间不需要设置主外键关系,用数据库语句就可以实现 ...

  3. bootstrap实现网页手风琴--博客园老牛大讲堂

    网页常用有网页的左右导航,其中用到了bootstap框架. 例子一. <!DOCTYPE html> <html><head><meta charset=&q ...

  4. Css3引用外部字体样式---博客园老牛大讲堂

    css3可以实现什么? 圆角,阴影,动画... 选择器: >:孩子选择器:例子:div>b{color:red}(div下孩子b颜色为红色) ~:兄弟 选择器:例子:div~b{color ...

  5. mysql左链表右链表区别_MySql链表语句--博客园老牛大讲堂

    为什么链表?--博客园老牛大讲堂 因为表与表之间有关系,而且查询时需要两张表的某些数据. 链表的前提是:表与表之间必须设置主外键吗? 不是的,其实表与表之间不需要设置主外键关系,用数据库语句就可以实现 ...

  6. H5移动开发AUI框架入门---博客园老牛大讲堂

    大家都知道H5可以开发移动端的页面,网上提供的移动端的开发都有很多.因为我学习了AUI框架,所以我这里介绍一下移动端AUI框架.--博客园老牛大讲堂 一.AUI框架是什么?---博客园老牛大讲堂 AU ...

  7. java 使用webmagic 爬虫框架爬取博客园数据

    java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录   webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...

  8. 随机数是骗人的,.Net、Java、C为我作证 - 杨中科 - 博客园

    移动端全链路跟踪保障体系 随机数是骗人的,.Net.Java.C为我作证 - 杨中科 - 博客园

  9. JAVA爬虫实践(实践二:博客园)

    分析博客园网站的请求可以发现,博客园的分页请求为POST方式,和知乎的滚动加载类似. 不同的是请求响应返回的是HTML而不是JSON. 这样可以套用上一篇爬知乎的代码,需要修改的部分就是POST方法传 ...

最新文章

  1. 【Linux系统】基础总结
  2. SpringBoot整合security的登录问题
  3. jQuery学习笔记(一):入门
  4. 微信小程序 - 实现左滑动删除功能
  5. JoshChen防止前台恶意修改数据
  6. kafka报错与调试技巧
  7. STM32的FLASH ID加密
  8. Safari 时间格式转换 NAN 问题
  9. ASP.NET 2.0 本地化功能:本地化 Web 应用程序的新方法
  10. antd中tooltip换行_ant design 中实现表格头部可删除和添加
  11. Python使用Apriori算法查找关系密切的演员组合
  12. 马云刘强东隔空互怼,美团外卖大范围故障,苹果系统漏洞百出 | 一周业界事
  13. plt.subplots_adjust(wspace=0.01, hspace=0.01)
  14. ansys添加力矩_Ansys加力矩.doc
  15. 猎豹极速wifi驱动 v3.0 官方版
  16. codeforces 577A Multiplication Table【思维】
  17. 鱼眼校正c语言算法,一种简单而精确的鱼眼图像校正算法研究
  18. springMVC 自定义类型转换器
  19. 2022-2027年中国核电设备市场竞争态势及行业投资前景预测报告
  20. 苹果四项AR/VR专利:超级变焦显示、单向透明等

热门文章

  1. 电脑上玩和平精英_和平精英奇幻之旅怎么玩-和平精英奇幻之旅玩法攻略
  2. easyui刷新几种方式
  3. php h5视频录制上传,基于koa的h5视频录制异步上传
  4. linux关机_LINUX快速入门第二章:Linux 系统启动过程
  5. 波形发生器设计c语言文件,超低频波形发生器的设计论文(C语言编程) .doc
  6. python绘制多边形_在python-matplotlib中绘制3D多边形
  7. php修改学生信息代码_论导师和学生关于论文写作最大的信息不对称(一):从初稿到定稿到底要修改几遍?...
  8. python 抠图源码_别再自己抠图了,Python用5行代码实现批量抠图
  9. android 存储空间监控,浅谈 Android 内存监控(中)
  10. python123第九周测验答案2020_脑筋急转弯:什么牛是最好骗的?这答案能笑死人...