最近幾天有機會到了一家科技公司,和裏面的項目經理聊了一下後端技術,他對個人講了一下須要會的一些基本技術,其中提到了驗證短信發送,今天我就剛學習了驗證短信發送信息,主要運用互億無線短信平臺進行發送,直入主題。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); } }
結果