国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

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

發(fā)布時(shí)間:2021-09-27 17:50 來(lái)源:億速云 閱讀:0 作者:小新 欄目: 開(kāi)發(fā)技術(shù) 歡迎投稿:712375056

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

最近用學(xué)習了一下調用第三方接口發(fā)送碼的程序,希望能夠幫助到大家。

1.首先下圖為項目的目錄結構,需要帶入三個(gè)包:

commons-httpclient-3.1.jar

commons-logging-1.0.4.jar

codec-1.3.jar

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

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) {  //構造HttpClient的實(shí)例  HttpClient httpClient = new HttpClient();    //創(chuàng )建POST方法的實(shí)例  PostMethod postMethod = new PostMethod(url);    //設置請求頭信息  postMethod.setRequestHeader("Connection", "close");    //添加參數  for (Map.Entry<String, String> 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) {   // 發(fā)生致命的異常,可能是協(xié)議不對或者返回的內容有問(wèn)題   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請求  * 方法說(shuō)明  * @Discription:擴展說(shuō)明  * @param url  * @param params  * @return String  */ public static String getRequest(String url, Map<String, String> params) {  //構造HttpClient實(shí)例  HttpClient client = new HttpClient();    //拼接參數  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);    //接收返回結果  String result = null;  try {   //執行HTTP GET方法請求   client.executeMethod(method);     //返回處理結果   result = method.getResponseBodyAsString();  } catch (HttpException e) {   // 發(fā)生致命的異常,可能是協(xié)議不對或者返回的內容有問(wèn)題   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ā)送短信的方法,其中要通過(guò)短信內容要進(jìn)行設置編碼集為utf-8,調用第三方接口傳參要按照第三方文檔規范:

package com.demo.util; import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;  public class SendMsgUtil { /**  * 發(fā)送短信消息  * 方法說(shuō)明  * @Discription:擴展說(shuō)明  * @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", "短信類(lèi)別編號");  params.put("extno", "擴展編號");   //手機號碼,多個(gè)號碼使用英文逗號進(jìn)行分割  params.put("hm", phones);  //將短信內容進(jìn)行URLEncoder編碼  params.put("nr", URLEncoder.encode(content));   return HttpRequestUtil.getRequest(url, params); }  /**  * 隨機生成6位隨機驗證碼  * 方法說(shuō)明  * @Discription:擴展說(shuō)明  * @return  * @return String  */ public static String createRandomVcode(){  //驗證碼  String vcode = "";  for (int i = 0; i < 6; i++) {   vcode = vcode + (int)(Math.random() * 9);  }  return vcode; } /**  * 測試  * 方法說(shuō)明  * @Discription:擴展說(shuō)明  * @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", "【簽名】尊敬的用戶(hù),您的驗證碼為" + SendMsgUtil.createRandomVcode() + ",請在10分鐘內輸入。請勿告訴其他人!")); }}

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

99久久国产福利自产拍| 久久毛片少妇高潮| 免费看黄A级毛片| 国产XXX69麻豆国语对白| 精品少妇人妻AV一区二区| 妺妺窝人体色WWW在线观看|