使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)。具体看代码:

使用HttpClient的时候需要在项目中引入:

commons-httpclient-3.1.jar

这个jar包,

项目结构:

1、创建一个Http的模拟请求工具类,然后写一个POST方法或者GET方法<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;"> /** * 文件说明 * @Description:扩展说明 * @Copyright: 2015 dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */ package com.demo.util; import java.io.IOException; import java.util.Map; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.SimpleHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; /** * @Author: feizi * @Date: 2015年4月17日 上午9:26:34 * @ModifyUser: feizi * @ModifyDate: 2015年4月17日 上午9:26:34 * @Version:V6.0 */ public class HttpRequestUtil { /** * HttpClient 模拟POST请求 * 方法说明 * @Discription:扩展说明 * @param url * @param params * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:15:59 * @ModifyUser:feizi * @ModifyDate: 2015年4月17日 下午7:15:59 */ public static String postRequest(String url, Map params) { //构造HttpClient的实例 HttpClient httpClient = new HttpClient(); //创建POST方法的实例 PostMethod postMethod = new PostMethod(url); //设置请求头信息 postMethod.setRequestHeader(Connection, close); //添加参数 for (Map.Entry entry : params.entrySet()) { postMethod.addParameter(entry.getKey(), entry.getValue()); } //使用系统提供的默认的恢复策略,设置请求重试处理,用的是默认的重试处理:请求三次 httpClient.getParams().setBooleanParameter(http.protocol.expect-continue, false); //接收处理结果 String result = null; try { //执行Http Post请求 httpClient.executeMethod(postMethod); //返回处理结果 result = postMethod.getResponseBodyAsString(); } catch (HttpException e) { // 发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println(请检查输入的URL!); e.printStackTrace(); } catch (IOException e) { // 发生网络异常 System.out.println(发生网络异常!); e.printStackTrace(); } finally { //释放链接 postMethod.releaseConnection(); //关闭HttpClient实例 if (httpClient != null) { ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown(); httpClient = null; } } return result; } /** * HttpClient 模拟GET请求 * 方法说明 * @Discription:扩展说明 * @param url * @param params * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:15:28 * @ModifyUser:feizi * @ModifyDate: 2015年4月17日 下午7:15:28 */ public static String getRequest(String url, Map params) { //构造HttpClient实例 HttpClient client = new HttpClient(); //拼接参数 String paramStr = ; for (String key : params.keySet()) { paramStr = paramStr + & + key + = + params.get(key); } paramStr = paramStr.substring(1); //创建GET方法的实例 GetMethod method = new GetMethod(url + ? + paramStr); //接收返回结果 String result = null; try { //执行HTTP GET方法请求 client.executeMethod(method); //返回处理结果 result = method.getResponseBodyAsString(); } catch (HttpException e) { // 发生致命的异常,可能是协议不对或者返回的内容有问题 System.out.println(请检查输入的URL!); e.printStackTrace(); } catch (IOException e) { // 发生网络异常 System.out.println(发生网络异常!); e.printStackTrace(); } finally { //释放链接 method.releaseConnection(); //关闭HttpClient实例 if (client != null) { ((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown(); client = null; } } return result; } }

2、在创建一个类,生成验证码,然后传递相应的参数(不同的短信平台接口会有不同的参数要求,这个一般短信平台提供的接口文档中都会有的,直接看文档然后按要求来即可)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<code class="hljs" java="">/**
  * 文件说明
  * @Description:扩展说明
  * @Copyright: 2015 dreamtech.com.cn Inc. All right reserved
  * @Version: V6.0
  */
package com.demo.util;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
/** 
 * @Author: feizi
 * @Date: 2015年4月17日 上午9:24:48
 * @ModifyUser: feizi
 * @ModifyDate: 2015年4月17日 上午9:24:48
 * @Version:V6.0
 */
public class SendMsgUtil {
    /**
     * 发送短信消息
      * 方法说明
      * @Discription:扩展说明
      * @param phones
      * @param content
      * @return
      * @return String
      * @Author: feizi
      * @Date: 2015年4月17日 下午7:18:08
      * @ModifyUser:feizi
      * @ModifyDate: 2015年4月17日 下午7:18:08
     */
    @SuppressWarnings(deprecation)
    public static String sendMsg(String phones,String content){
        //短信接口URL提交地址
        String url = 短信接口URL提交地址;
        Map<string, string=""> params = new HashMap<string, string="">();
        params.put(zh, 用户账号);
        params.put(mm, 用户密码);
        params.put(dxlbid, 短信类别编号);
        params.put(extno, 扩展编号);
        //手机号码,多个号码使用英文逗号进行分割
        params.put(hm, phones);
        //将短信内容进行URLEncoder编码
        params.put(nr, URLEncoder.encode(content));
        return HttpRequestUtil.getRequest(url, params);
    }
    /**
     * 随机生成6位随机验证码
      * 方法说明
      * @Discription:扩展说明
      * @return
      * @return String
      * @Author: feizi
      * @Date: 2015年4月17日 下午7:19:02
      * @ModifyUser:feizi
      * @ModifyDate: 2015年4月17日 下午7:19:02
     */
    public static String createRandomVcode(){
        //验证码
        String vcode = ;
        for (int i = 0; i < 6; i++) {
            vcode = vcode + (int)(Math.random() * 9);
        }
        return vcode;
    }
    /**
     * 测试
      * 方法说明
      * @Discription:扩展说明
      * @param args
      * @return void
      * @Author: feizi
      * @Date: 2015年4月17日 下午7:26:36
      * @ModifyUser:feizi
      * @ModifyDate: 2015年4月17日 下午7:26:36
     */
    public static void main(String[] args) {
//      System.out.println(SendMsgUtil.createRandomVcode());
//      System.out.println(&ecb=12.substring(1));
        System.out.println(sendMsg(18123456789,15123456789, 尊敬的用户,您的验证码为 + SendMsgUtil.createRandomVcode() + ,有效期为60秒,如有疑虑请详询400-069-2886(客服电话)【XXX中心】));
    }
}
</string,></string,></code>

然后执行一下,一般的情况下参数传递正确,按照接口文档的规范来操作的话,都会发送成功的,手机都能收到验证码的,然后可能会出现的问题就是:发送的短信内容有可能会出现中文乱码,然后就会发送不成功,按照短信平台的要求进行相应的编码即可。一般都会是UTF-8编码。

java 实现短信验证码功能相关推荐

  1. Java配置短信验证码功能实现录

    Java配置短信验证码功能实现录 1.准备: 1.注册登录腾讯云(搜索短信,进入相应控制页面) 2.有一个对应的Spring项目 2.腾讯云相关操作: 1.进入腾讯云→国内短信→签名管理 2.创建签名 ...

  2. java短信验证码功能发送的验证码如何校验_java 实现发送短信验证码功能

    原标题:java 实现发送短信验证码功能 如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenz ...

  3. java短信验证码功能发送的验证码如何校验_Java实现发送短信验证码功能

    一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口( ...

  4. 阿里云——Java实现手机短信验证码功能

    目录 如何实现短信验证码功能 1.准备工作 1.1 注册 阿里云 账号,并完成实名认证.找到短信服务功能. 1.2 开通短信服务 1.3 签名与模板 1.4 获取AccessKey 1.5 打开短信控 ...

  5. java短信内容加链接_Java加腾讯云实现短信验证码功能

    准备工作 1.选择服务 2.添加应用:我已经添加完了 3.点击应用名称 4.出现ID和Key 5.编辑短信创建签名 6.在第5步后 使用到的jar包: qcloudsms-1.0.2.jar com. ...

  6. Java实现短信验证码--(完整教程)

    原 Java实现短信验证码--(完整教程) 2018年04月24日 13:03:12 北山_ 阅读数 19189更多 分类专栏: Java 阿里云 版权声明:本文为博主原创文章,遵循 CC 4.0 B ...

  7. java发送短信验证码带倒计时

    分享一个完整的java发送短信验证码的完整实例,这是一个官方的使用demo,带有60秒倒计时功能. 效果: 我使用的是榛子云短信平台 , 官网地址:http://sms_developer.zhenz ...

  8. laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能

    laravel 实现短信验证码功能,搜索资料发现比较流行的有两个包: 一个是laravel sms 地址  https://github.com/toplan/laravel-sms 一个是easy ...

  9. iOS-使用第三方实现短信验证码功能

    目前,很多App是通过短信验证码来实现用户注册和登录功能,目前市面上绝大多数的短信SP提供商都是需要付费才能提供这种服务,价格普遍在0.07元/条左右: 建议:如果公司比较大,开发人员充足,时间充足的 ...

  10. java 登陆短信验证码_Java实现短信验证码

    原标题:Java实现短信验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 短信验证码 短信验证码都是调 ...

最新文章

  1. 10通信端口感叹号_BFC 系列 数字光纤放大器通信转换器代理报价
  2. top命令的笔记补充2--如何将top信息后台运行并写入log
  3. JavaScript内存泄漏
  4. 高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-1 发布
  5. 图解SQL Server 2008入门总结
  6. AdminLTE介绍
  7. 大剑无锋之素数【面试推荐】
  8. Dropwizard:轻松的RESTful JSON HTTP Web服务
  9. python 线型_CCF 202006-1 线性分类器 python
  10. centos7.0 安装java1.8,tomcat
  11. 联想服务器st系列,联想ThinkSystem ST50评测 一款超值的入门级服务器
  12. 笔记 33 | Android通信之Thread类实现多线程
  13. 【车辆分类】基于matlab的视频中车辆跟踪监测分类算法仿真,包括背景差分与帧间差分以及形态学处理
  14. js 清除对象里的属性值为空的属性
  15. CAD输出为PDF至A4大小
  16. python引用计数的原理_深入Python中引用计数
  17. html颜色代码 糖果色,75平米糖果色跃层家 绚丽色彩散发迷人魅力
  18. python资格证_掌握核心竞争力:五大数据科学类资格证书
  19. 办公系统服务器搭建,搭建云桌面办公服务器
  20. leetcode 606 .根据二叉树创建字符串

热门文章

  1. 深入学习java的困惑:3年开发,下一步学习的方向以及要做什么?
  2. 【error】RuntimeError: size mismatch
  3. Java中用System.getProperty(...)获取系统属性
  4. 《jike--微服务架构核心20讲》笔记
  5. android 单词本代码,android 背单词app源码(MVP架构)
  6. macbook重装系统 选择方案_Mac重装系统详解,教你mac抹掉磁盘重装系统!
  7. java 编写扑克牌洗牌,java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习
  8. 面渣逆袭:JVM经典五十问,这下面试稳了
  9. c语言角度换成弧度的编码,角度弧度转换代码
  10. numpy弧度制和角度制转换deg2rad, rad2deg