中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台
一、JAVA發(fā)送手機(jī)短信常見(jiàn)的有三種方式(如下所列):
使用webservice接口發(fā)送手機(jī)短信,這個(gè)可以使用sina提供的webservice進(jìn)行發(fā)送,但是需要進(jìn)行注冊(cè)
使用短信mao的方式進(jìn)行短信的發(fā)送,這種方式應(yīng)該是比較的常用,前提是需要購(gòu)買硬件設(shè)備。
二、一下整理了SMS短信驗(yàn)證過(guò)程:
1、首先需要帶入三個(gè)包:
commons-httpclient-3.1.jar? ? ??commons-logging-1.0.4.jar? ? ??codec-1.3.jar
2、創(chuàng)建發(fā)送短信的類(一般寫在工具類中),其中要通過(guò)短信內(nèi)容要進(jìn)行設(shè)置編碼集為utf-8,調(diào)用第三方接口傳參要按照第三方文檔規(guī)范:
packagecom.demo.util;importjava.io.IOException;importjava.util.Map;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.HttpException;importorg.apache.commons.httpclient.SimpleHttpConnectionManager;importorg.apache.commons.httpclient.methods.GetMethod;importorg.apache.commons.httpclient.methods.PostMethod;public classHttpRequestUtil {/*** HttpClient 模擬POST請(qǐng)求*/
public static String postRequest(String url, Mapparams) {//構(gòu)造HttpClient的實(shí)例
HttpClient httpClient = newHttpClient();//創(chuàng)建POST方法的實(shí)例
PostMethod postMethod = newPostMethod(url);//設(shè)置請(qǐng)求頭信息
postMethod.setRequestHeader("Connection", "close");//添加參數(shù)
for (Map.Entryentry : params.entrySet()) {
postMethod.addParameter(entry.getKey(), entry.getValue());
}//使用系統(tǒng)提供的默認(rèn)的恢復(fù)策略,設(shè)置請(qǐng)求重試處理,用的是默認(rèn)的重試處理:請(qǐng)求三次
httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false);//接收處理結(jié)果
String result = null;try{//執(zhí)行Http Post請(qǐng)求
httpClient.executeMethod(postMethod);//返回處理結(jié)果
result =postMethod.getResponseBodyAsString();
}catch(HttpException e) {//發(fā)生致命的異常,可能是協(xié)議不對(duì)或者返回的內(nèi)容有問(wèn)題
System.out.println("請(qǐng)檢查輸入的URL!");
e.printStackTrace();
}catch(IOException e) {//發(fā)生網(wǎng)絡(luò)異常
System.out.println("發(fā)生網(wǎng)絡(luò)異常!");
e.printStackTrace();
}finally{//釋放鏈接
postMethod.releaseConnection();//關(guān)閉HttpClient實(shí)例
if (httpClient != null) {
((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();
httpClient= null;
}
}returnresult;
}/*** HttpClient 模擬GET請(qǐng)求*/
public static String getRequest(String url, Mapparams) {//構(gòu)造HttpClient實(shí)例
HttpClient client = newHttpClient();//拼接參數(shù)
String paramStr = "";for(String key : params.keySet()) {
paramStr= paramStr + "&" + key + "=" +params.get(key);
}
paramStr= paramStr.substring(1);//創(chuàng)建GET方法的實(shí)例
GetMethod method = new GetMethod(url + "?" +paramStr);//接收返回結(jié)果
String result = null;try{//執(zhí)行HTTP GET方法請(qǐng)求
client.executeMethod(method);//返回處理結(jié)果
result =method.getResponseBodyAsString();
}catch(HttpException e) {//發(fā)生致命的異常,可能是協(xié)議不對(duì)或者返回的內(nèi)容有問(wèn)題
System.out.println("請(qǐng)檢查輸入的URL!");
e.printStackTrace();
}catch(IOException e) {//發(fā)生網(wǎng)絡(luò)異常
System.out.println("發(fā)生網(wǎng)絡(luò)異常!");
e.printStackTrace();
}finally{//釋放鏈接
method.releaseConnection();//關(guān)閉HttpClient實(shí)例
if (client != null) {
((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown();
client= null;
}
}returnresult;
}
}
packagecom.demo.util;importjava.net.URLEncoder;importjava.util.HashMap;importjava.util.Map;public classSendMsgUtil {/*** 發(fā)送短信消息*/@SuppressWarnings("deprecation")public staticString sendMsg(String phones,String content){//短信接口URL提交地址utf-8
String url = "http://utf8.sms.webchinese.cn";
Map params = new HashMap();//用戶名,例:abc123456
params.put("Uid", "yu3961520");//短信接口密鑰 ,不是密碼,例:79c3053154d313a34567
params.put("Key", "d41d8cd98f00b204e980");//手機(jī)號(hào)碼,多個(gè)號(hào)碼使用英文逗號(hào)進(jìn)行分割
params.put("smsMob", phones);//將短信內(nèi)容進(jìn)行URLEncoder編碼
params.put("smsText", URLEncoder.encode(content));returnHttpRequestUtil.getRequest(url, params);
}/*** 隨機(jī)生成6位隨機(jī)驗(yàn)證碼*/
public staticString createRandomVcode(){//驗(yàn)證碼
String vcode = "";for (int i = 0; i < 6; i++) {
vcode= vcode + (int)(Math.random() * 9);
}returnvcode;
}/*** 測(cè)試*/
public static voidmain(String[] args) {//多個(gè)手機(jī)號(hào)請(qǐng)用半角,隔開(kāi)//例:System.out.println(sendMsg("18912345678,17812345678", "尊敬的用戶,您的驗(yàn)證碼為" + SendMsgUtil.createRandomVcode() + ",有效期為60秒,如有疑慮請(qǐng)?jiān)斣?00-3023-4493(客服電話)【中國(guó)聯(lián)通】"));
System.out.println(sendMsg("電話號(hào)碼", "*****,你的驗(yàn)證碼為" + SendMsgUtil.createRandomVcode() + ",有效期為60秒,如有疑慮請(qǐng)?jiān)斣?******)【簽名,這是驗(yàn)證格式的必須填】"));
}
}
3、短信發(fā)送后返回值 說(shuō)明 :
-1 沒(méi)有該用戶賬戶
-2 密鑰不正確(不是用戶密碼)
-3 短信數(shù)量不足
-11 該用戶被禁用
-14 短信內(nèi)容出現(xiàn)非法字符
-41 手機(jī)號(hào)碼為空
-42 短信內(nèi)容為空
大于0 短信發(fā)送數(shù)量
總結(jié)
以上是生活随笔為你收集整理的中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 56式三棱刺刀
- 下一篇: 圣人还是人吗,?圣人算人还是仙?