最近几天有机会到了一家科技公司,和里面的项目经理聊了一下后端技术,他对个人讲了一下须要会的一些基本技术,其中提到了验证短信发送,今天我就刚学习了验证短信发送信息,主要运用互亿无线短信平台进行发送,直入主题。php
项目已经上传GitHub:SMShtml
互亿无线短信平台
互亿无线平台支持多开发语言互亿无线短信平台,仍是按照以前的惯例,文档上官网查看,Blog中咱们主要将平台的运用,新注册用户能够有免费的50
条短信java
依赖
1.dom4j
主要运用于解析xml
git
2.httpclient
主要运用于发送http
请求github
3.commons-codec
是Apache开源组织提供的用于摘要运算、编码的包。在该包中主要分为四类加密:BinaryEncoders、DigestEncoders、LanguageEncoders、NetworkEncoders
web
4.commons-logging
是Apache commons类库中的一员。Apache commons类库是一个通用的类库,提供了基础的功能,好比说commons-fileupload,commons-httpclient,commons-io,commons-codes
apache
SMS工具类编写
package com.yangzinan.sms; import java.io.IOException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.omg.CORBA.NamedValue; public class SMSUtil { /* * @param url 请求地址 * @param content 短信内容 * @param account 从互亿后台获取 * @param password 从互亿后台获取 * @param mobile 手机号 */ public static void send(String url,String content,String account,String password,String mobile) throws Exception { /* * 实例话对象 */ HttpClient client = new HttpClient(); PostMethod method = new PostMethod(url); /* * 设置内容编码 */ method.getParams().setContentCharset("GBK"); /* * 设置请求头 */ method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=GBK"); /* * 发送配置信息 */ NameValuePair[] info = { new NameValuePair("account", account), new NameValuePair("password", password), new NameValuePair("mobile",mobile), new NameValuePair("content",content), }; /* * 设置请求内容 */ method.setRequestBody(info); /* * 执行短信发送 */ client.executeMethod(method); /* * 接受返回值 */ String result_info = method.getResponseBodyAsString(); /* * 解析xml */ Document doc = DocumentHelper.parseText(result_info); Element ele = doc.getRootElement(); String code = ele.elementText("code"); String msg = ele.elementText("msg"); String smsid = ele.elementText("smsid"); System.out.println("code:"+code); System.out.println("msg:"+msg); System.out.println("smsid:"+smsid); } }
url
短信发送服务器地址account、password
都须要从互亿无线管理后台中获取mobile
为接收短信的手机号后端
⚠️注意:因为须要自定义短信模版须要认证,因此短信模版必须为您的验证码是:「变量」。请不要把验证码泄露给其余人。
才能够发送成功服务器
package com.yangzinan.sms; public class SendSMS { public static void main(String[] args) throws Exception { String URL="http://106.ihuyi.com/webservice/sms.php?method=Submit"; String account="*******"; String password="*****************"; String mobile="********"; int code = (int)((Math.random()*9+1)*100000); StringBuilder content = new StringBuilder(); content.append("您的验证码是:"); content.append(code); content.append("。请不要把验证码泄露给其余人。"); SMSUtil.send(URL, content.toString(), account, password, mobile); } }
结果