java如何實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼

這篇文章主要介紹了java如何實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

十余年的蘭陵網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整蘭陵建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“蘭陵網(wǎng)站設(shè)計(jì)”,“蘭陵網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

最近用學(xué)習(xí)了一下調(diào)用第三方接口發(fā)送短信驗(yàn)證碼的程序,希望能夠幫助到大家。

1.首先下圖為項(xiàng)目的目錄結(jié)構(gòu),需要帶入三個包:

commons-httpclient-3.1.jar

commons-logging-1.0.4.jar

codec-1.3.jar

2.其次要創(chuàng)建模擬POST、GET請求的工具類:

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;  public class HttpRequestUtil { /** * HttpClient 模擬POST請求 * @param url * @param params * @return */ public static String postRequest(String url, Map<String, String> params) {  //構(gòu)造HttpClient的實(shí)例  HttpClient httpClient = new HttpClient();    //創(chuàng)建POST方法的實(shí)例  PostMethod postMethod = new PostMethod(url);    //設(shè)置請求頭信息  postMethod.setRequestHeader("Connection", "close");    //添加參數(shù)  for (Map.Entry<String, String> entry : params.entrySet()) {   postMethod.addParameter(entry.getKey(), entry.getValue());  }    //使用系統(tǒng)提供的默認(rèn)的恢復(fù)策略,設(shè)置請求重試處理,用的是默認(rèn)的重試處理:請求三次  httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false);    //接收處理結(jié)果  String result = null;  try {   //執(zhí)行Http Post請求   httpClient.executeMethod(postMethod);     //返回處理結(jié)果   result = postMethod.getResponseBodyAsString();  } catch (HttpException e) {   // 發(fā)生致命的異常,可能是協(xié)議不對或者返回的內(nèi)容有問題   System.out.println("請檢查輸入的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;   }  }  return result; }   /**  * HttpClient 模擬GET請求  * 方法說明  * @Discription:擴(kuò)展說明  * @param url  * @param params  * @return String  */ public static String getRequest(String url, Map<String, String> params) {  //構(gòu)造HttpClient實(shí)例  HttpClient client = new HttpClient();    //拼接參數(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方法請求   client.executeMethod(method);     //返回處理結(jié)果   result = method.getResponseBodyAsString();  } catch (HttpException e) {   // 發(fā)生致命的異常,可能是協(xié)議不對或者返回的內(nèi)容有問題   System.out.println("請檢查輸入的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;   }  }  return result; }}

3.創(chuàng)建發(fā)送短信的方法,其中要通過短信內(nèi)容要進(jìn)行設(shè)置編碼集為utf-8,調(diào)用第三方接口傳參要按照第三方文檔規(guī)范:

package com.demo.util; import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;  public class SendMsgUtil { /**  * 發(fā)送短信消息  * 方法說明  * @Discription:擴(kuò)展說明  * @param phones  * @param content  * @return  * @return String  */ @SuppressWarnings("deprecation") public static String sendMsg(String phones,String content) { try { content = java.net.URLEncoder.encode(content,"utf-8"); System.out.println(content); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); }  //短信接口URL提交地址  String url = "https://api.dingdongcloud.com/v1/sms/sendyzm?apikey=b46c4961aa875f626b7924aace0d53f7&mobile="+phones+"&content="+content;   Map<String, String> params = new HashMap<String, String>();   params.put("zh", "賬號");  params.put("mm", "密碼");  params.put("dxlbid", "短信類別編號");  params.put("extno", "擴(kuò)展編號");   //手機(jī)號碼,多個號碼使用英文逗號進(jìn)行分割  params.put("hm", phones);  //將短信內(nèi)容進(jìn)行URLEncoder編碼  params.put("nr", URLEncoder.encode(content));   return HttpRequestUtil.getRequest(url, params); }  /**  * 隨機(jī)生成6位隨機(jī)驗(yàn)證碼  * 方法說明  * @Discription:擴(kuò)展說明  * @return  * @return String  */ public static String createRandomVcode(){  //驗(yàn)證碼  String vcode = "";  for (int i = 0; i < 6; i++) {   vcode = vcode + (int)(Math.random() * 9);  }  return vcode; } /**  * 測試  * 方法說明  * @Discription:擴(kuò)展說明  * @param args  * @return void  */ public static void main(String[] args) {//  System.out.println(SendMsgUtil.createRandomVcode());//  System.out.println("&ecb=12".substring(1));  System.out.println(sendMsg("18201150549", "【簽名】尊敬的用戶,您的驗(yàn)證碼為" + SendMsgUtil.createRandomVcode() + ",請?jiān)?0分鐘內(nèi)輸入。請勿告訴其他人!")); }}

4.調(diào)用main方法可以進(jìn)行測試,如果控臺太輸出返回狀態(tài)值不是200,可以參考第三方發(fā)短信的文檔返回參數(shù)說明。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“java如何實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

標(biāo)題名稱:java如何實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼
分享URL:http://bm7419.com/article14/jdjsde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)頁設(shè)計(jì)公司、用戶體驗(yàn)網(wǎng)站排名、App設(shè)計(jì)網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)