http請求,HttpClient,調用短信接口
阿新 • • 發佈:2017-12-23
短信接口 trac 分享 設置密碼 phone 地址 bubuko 測試 api
項目中安全設置找回密碼的功能,需要通過發送短信驗證綁定手機,通過綁定的手機號驗證並重新設置密碼。
因為項目是通過maven管理的,所以需要在pom.xml文件中引入jar包,
maven引入的jar包:
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>
這裏需要註意的是,因為但因版本兼容等原因,開始引入的並不是目前最新的 3.1 版本,而是比較老的2.*版本,這個版本沒有設置字符類型的方法,所以只能用默認的字符類型發送數據,結果返回Fail,後來測試在沒有漢字的判斷時可以返回OK,又通過Postman查看:
因此確定時發送請求中漢字的問題,後來修改為最新的3.1版本之後設置字符串格式 “UTF-8”,可以正常發送請求並返回true。
發送請求的部分代碼:
String info = null; try{ HttpClient httpclient = new HttpClient();//方法調用 PostMethod post = new PostMethod("http://192.168.1.99:8088/sms/sendCode");//接口地址 post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");//格式轉換 post.addParameter("signName", "淄博**智能"); post.addParameter("templateCode", "SMS_114600059"); post.addParameter("expireTime", "300"); post.addParameter("count", "4"); post.addParameter("bizId", "learn"); post.addParameter("phoneNumbers", list.get(0).getPhone()); httpclient.executeMethod(post); info = new String(post.getResponseBody(),"UTF-8"); mav.addObject("apimsg",info); }catch (Exception e) { e.printStackTrace(); }
返回的OK發送請求成功,
返回的later發送過請稍後,
返回的Fail失敗,之前沒有設置字符編碼類型是就是返回這樣,
還有因為參數名寫錯提示的返回參事錯誤等等。
用戶輸入驗證碼判斷是否正確:
HttpClient httpclient = new HttpClient();//方法調用 PostMethod post = new PostMethod("http://192.168.1.99:8088/sms/validCode");//接口地址 //這裏沒有設置字符編碼,也可以通過,因為沒有漢字 post.addParameter("bizId", "learn"); post.addParameter("code", pnum); post.addParameter("phoneNumber", "17560306966"); httpclient.executeMethod(post); info = new String(post.getResponseBody());
這裏是根據輸入的驗證碼判斷是否正確,返回OK代表輸入的驗證碼和發送的驗證碼一致。
http請求,HttpClient,調用短信接口