Java短信驗證碼登錄流程思路及詳細(xì)步驟
點擊關(guān)注公眾號,Java干貨及時送達(dá)
牛逼!又發(fā)現(xiàn)了一款面試題庫,太全了!!
(點擊查看)
Part2首先添加一個jar包
工具類會用到
<dependency>
??<groupId>commons-codecgroupId>
??<artifactId>commons-codecartifactId>
??<version>1.11version>
dependency>Part3編寫簡單的短信驗證功能
我這里只是編寫一個簡單的短信驗證功能,要是用其他的語音驗證。。。。等等需要去秒滴云官方下載文檔,下面是編寫的一個config文檔,專門存放一些參數(shù)

Part4編寫http請求工具類
public?class?HttpUtil
{
???/**
????* 構(gòu)造通用參數(shù)timestamp、sig和respDataType
????*
????* @return
????*/
???public?static?String?createCommonParam()
???{
??????// 時間戳
??????SimpleDateFormat sdf = new?SimpleDateFormat("yyyyMMddHHmmss");
??????String?timestamp = sdf.format(new?Date());
??????// 簽名
??????String?sig = DigestUtils.md5Hex(Config.ACCOUNT_SID + Config.AUTH_TOKEN + timestamp);
??????return?"×tamp="?+ timestamp + "&sig="?+ sig + "&respDataType="?+ Config.RESP_DATA_TYPE;
???}
???/**
????* post請求
????*
????* @param url
????* 功能和操作
????* @param body
????* 要post的數(shù)據(jù)
????* @return
????* @throws IOException
????*/
???public?static?String?post(String?url, String?body)
???{
??????System.out.println("url:"?+ System.lineSeparator() + url);
??????System.out.println("body:"?+ System.lineSeparator() + body);
??????String?result = "";
??????try
??????{
?????????OutputStreamWriter out = null;
?????????BufferedReader in?= null;
?????????URL realUrl = new?URL(url);
?????????URLConnection conn = realUrl.openConnection();
?????????// 設(shè)置連接參數(shù)
?????????conn.setDoOutput(true);
?????????conn.setDoInput(true);
?????????conn.setConnectTimeout(5000);
?????????conn.setReadTimeout(20000);
?????????conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
?????????// 提交數(shù)據(jù)
?????????out = new?OutputStreamWriter(conn.getOutputStream(), "UTF-8");
?????????out.write(body);
?????????out.flush();
?????????// 讀取返回數(shù)據(jù)
?????????in?= new?BufferedReader(new?InputStreamReader(conn.getInputStream(), "UTF-8"));
?????????String?line = "";
?????????boolean?firstLine = true; // 讀第一行不加換行符
?????????while?((line = in.readLine()) != null)
?????????{
????????????if?(firstLine)
????????????{
???????????????firstLine = false;
????????????} else
????????????{
???????????????result += System.lineSeparator();
????????????}
????????????result += line;
?????????}
??????} catch?(Exception e)
??????{
?????????e.printStackTrace();
??????}
??????return?result;
???}
???/**
????* 回調(diào)測試工具方法
????*
????* @param url
????* @param reqStr
????* @return
????*/
???public?static?String?postHuiDiao(String?url, String?body)
???{
??????String?result = "";
??????try
??????{
?????????OutputStreamWriter out = null;
?????????BufferedReader in?= null;
?????????URL realUrl = new?URL(url);
?????????URLConnection conn = realUrl.openConnection();
?????????// 設(shè)置連接參數(shù)
?????????conn.setDoOutput(true);
?????????conn.setDoInput(true);
?????????conn.setConnectTimeout(5000);
?????????conn.setReadTimeout(20000);
?????????// 提交數(shù)據(jù)
?????????out = new?OutputStreamWriter(conn.getOutputStream(), "UTF-8");
?????????out.write(body);
?????????out.flush();
?????????// 讀取返回數(shù)據(jù)
?????????in?= new?BufferedReader(new?InputStreamReader(conn.getInputStream(), "UTF-8"));
?????????String?line = "";
?????????boolean?firstLine = true; // 讀第一行不加換行符
?????????while?((line = in.readLine()) != null)
?????????{
????????????if?(firstLine)
????????????{
???????????????firstLine = false;
????????????} else
????????????{
???????????????result += System.lineSeparator();
????????????}
????????????result += line;
?????????}
??????} catch?(Exception e)
??????{
?????????e.printStackTrace();
??????}
??????return?result;
???}
}Part5生成四位數(shù)的方法
public?static?String?runNumber() {
???String?str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
???StringBuilder sb=new?StringBuilder(4);
???for(int i=0;i<4;i++)
???{
??????char ch=str.charAt(new?Random().nextInt(str.length()));
??????sb.append(ch);
???}
???System.out.println(sb.toString());
???String?code = sb.toString();
???return?code;
}
4、執(zhí)行方法execute(),便會發(fā)送成功
public?class?IndustrySMS
{
???private?static?String?operation = "/industrySMS/sendSMS";
???private?static?String?accountSid = Config.ACCOUNT_SID;
???private?static?String?to = "15342349382";
???private?static?String?smsContent = "【小陶科技】登錄驗證碼:{"+runNumber().toString()+"},如非本人操作,請忽略此短信。";
???/**
????* 驗證碼通知短信
????*/
???public?static?void?execute()
???{
??????String?tmpSmsContent = null;
???????try{
?????????tmpSmsContent = URLEncoder.encode(smsContent, "UTF-8");
???????}catch(Exception e){
?????????
???????}
???????String?url = Config.BASE_URL + operation;
???????String?body = "accountSid="?+ accountSid + "&to="?+ to + "&smsContent="?+ tmpSmsContent
???????????+ HttpUtil.createCommonParam();
???????// 提交請求
???????String?result = HttpUtil.post(url, body);
???????System.out.println("result:"?+ System.lineSeparator() + result);
???}以上就是短信驗證碼登錄流程詳細(xì)步驟
作者 |?classabcd
如有文章對你有幫助,
歡迎關(guān)注??、點贊??、轉(zhuǎn)發(fā)??!
推薦,?Java面試題庫,詳情點擊: 牛逼!又發(fā)現(xiàn)了一款牛逼的Java面試題庫,史上最強! 點擊文末“閱讀原文”可直達(dá)
評論
圖片
表情



