SMS 검증 코드를 전송하는 함수는 XinyItong의 SMS 플랫폼 인터페이스를 사용한 다음 httpclient를 사용하여 Post 요청을 시뮬레이션하거나 Java의 요청을 가져오고 (일반적으로 게시 요청 인 SMS 플랫폼 요구 사항 참조) SMS 플랫폼에서 제공 한 인터페이스를 호출합니다 (SMS 플랫폼의 인터페이스 사양을 따르십시오). 코드에 따라 다릅니다.
httpclient를 사용하는 경우 프로젝트에서이를 소개해야합니다.
Commons-httpclient-3.1.jar
이 JAR 패키지,
프로젝트 구조 :
1. HTTP 시뮬레이션 요청 도구 클래스를 작성한 다음 게시물 메소드를 작성하거나 메소드를 작성하십시오.
/*** 파일 설명* @Description : 확장 설명* @Copyright : 2015 DreamTech.com.cn Inc. 모든 오른쪽 예약* @version : v6.0*/package com.demo.util; import java.io.ioexception; import java.util.map; import org.apache.commons.httpclient.httpclient; org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.httpexception; import org.apache.commons.httpclient.simplehttpconnectionmanager; import org.apache.commons.httpclient.method org.apache.commons.httpclient.methods.postmethod;/** * @author : feizi * @date : 2015 년 4 월 17 일 오전 9시 26 분 34 초 * @ModifyUser : feizi * @ModifyDate : 4 월 17 일, 2015 년 4 월 17 일 오전 : v6.0 */public class httprettut. * httpclient 시뮬레이션 포스트 요청 * 메소드 설명 * @discription : 확장 된 설명 * @param url * @param params * @return string * @author : feizi * @date : 2015 년 4 월 17 일 오후 7시 15 분 59 분 * @ModifyUser : Feizi * @ModifyDate : 4 월 17 일, 2015 년 4 월 17 일, 2015 년 5 월 17 일. Map <string, string> params) {// httpclient httpclient httpclient httpclient = new httpclient (); // post method의 인스턴스 생성 postMethod postMethod = new postMethod (url); // 요청 헤더 정보 설정 postMethod.setRequestHeader ( "Connection", "close"); // (map.entry <string, String> entry : params.entryset ()) {postMethod.AddParameter (Entry.GetKey (), Entry.GetValue ())에 대한 매개 변수 추가; } // 시스템에서 제공 한 기본 복구 전략을 사용하여 기본 재 시도 처리를 사용하여 요청 재시도 처리를 설정하십시오. httpclient.getparams (). setbooleanparameter ( "http.protocol.expect-continue", false); // 처리 결과 수신 문자열 result = null; {// http post request httpclient.executemethod (postmethod); // 반환 처리 결과 결과 = postMethod.getResponseBodyAsString (); } catch (httpexception e) {// 치명적인 예외가 발생했으며, 이는 반환 된 컨텐츠 시스템의 불일치 또는 문제로 인한 것일 수 있습니다. e.printstacktrace (); } catch (ioException e) {// 네트워크 예외가 발생했습니다. e.printstacktrace (); } 마지막으로 {// 링크를 릴리스 postMethod.releaseConnection (); // (httpclient! = null) {((SimpleHttpConnectionManager) httpclient.gethttpconnectionManager ()). shutdown (); httpclient = null; }} 반환 결과; } / ** * httpclient simulates get request * method description * @discription : extension description * @param url * @param params * @return string * @author : feizi * @date : 2015 년 4 월 17 일 오후 7:15:28 * @ModifyUser : Feizi * @ModifyDate : 2015 년 4 월 17:15:15:15:15:15:15:15:15. getRequest (String URL, Map <String, String> Params) {// 구성 httpclient 인스턴스 httpclient client = new httpclient (); // 매개 변수 분할 문자열 paramstr = ""; for (string key : params.keyset ()) {paramstr = paramstr + "&" + key + "=" + params.get (key); } paramstr = paramstr.substring (1); // get 메소드의 인스턴스 생성 getMethod 메서드 = new getMethod (url + "?" + paramstr); // return result rest string result = null; 시도 {// http get 메소드 요청 클라이언트를 실행합니다. executemethod (method); // 처리 결과를 반환하면 결과 = method.getResponseBodyAsString (); } catch (httpexception e) {// 치명적인 예외가 발생했으며 프로토콜이 잘못되었거나 반환 된 컨텐츠 시스템에 문제가있을 수 있습니다. e.printstacktrace (); } catch (ioException e) {// 네트워크 예외가 발생했습니다. e.printstacktrace (); } 마지막으로 {// release link methys.releaseConnection (); // (클라이언트! = null) {((simpleHttpConnectionManager) client.gethttpConnectionManager ()). shutdown (); 클라이언트 = null; }} 반환 결과; }}2. 클래스 생성, 검증 코드를 생성 한 다음 해당 매개 변수를 전달합니다 (다른 SMS 플랫폼 인터페이스는 다른 매개 변수 요구 사항이 있습니다.이 일반 SMS 플랫폼은 인터페이스 문서를 제공합니다. 문서를보고 요구 사항을 따르십시오).
/*** 파일 설명* @description : 확장 된 설명* @CopyRight : 2015 DreamTech.com.cn Inc. 모든 오른쪽 예약* @version : v6.0*/package com.demo.util; import java.net.urlencoder; import java.util.hashmap; import java.util.map;/*** @author : feizi* @uzi : feizi* @date : 9:24:48 AM * @ModifyUser : Feizi * @ModifyDate : 2015 년 4 월 17 일 오전 9시 24 분 48 초 * @version : v6.0 * /public class sendmsgutil { /** * Send SMS 메시지 * @Discription : Extended Description * @param phones * @Param Content * @Rethent * @Author : feizi * @Author : feizii 2015 at 7:18:08 PM * @ModifyUser : Feizi * @ModifyDate : 2015 년 4 월 17 일 오후 7시 18 분 8 분 */@SuppressWarnings ( "감가 상각") 공개 정적 문자열 sendmsg (문자열 전화, 문자열 컨텐츠) {// sms 인터페이스 제출 주소 문자열 url = " map <string, string> params = new Hashmap <String, String> (); params.put ( "Zh", "사용자 계정"); params.put ( "mm", "사용자 비밀번호"); params.put ( "dxlbid", "SMS 카테고리 번호"); params.put ( "extno", "extno"); // 휴대 전화 번호, 영어 쉼표를 사용하여 여러 개의 번호가 나뉘어집니다. // 사용자는 URL params.put ( "nr", urlencoder.encode (content))별로 SMS의 내용을 인코딩합니다. return httprequestutil.getRequest (url, params); } / ** * 무작위로 6 비트 랜덤 검증 코드 * 메소드 설명 * @discription : 확장 된 설명 * @return * @return String * @Author : Feizi * @Date : 2015 년 4 월 17 일 오후 7:19:02 PM * @ModifyUser : Feizi * @ModifyDate : 2015 년 4 월 17:02 PM * / public string cretomvcode () // Vertification Code String vcode = ""; for (int i = 0; i <6; i ++) {vcode = vcode+(int) (math.random () * 9); } return vcode; }/** * 테스트 * 메소드 설명 * @discription : 확장 설명 * @param args * @return void * @author : feizi * @date : 2015 년 4 월 17 일 오후 4 월 17 일 오후 * @ModifyUser : Feizi * @ModifyDate : 2015 년 4 월 17:26:36:26:26:36:26:26:26 :/public static void (args) system.out.println (sendmsgutil.createrandomvcode ()); // system.out.println ( "& ecb = 12".substring (1)); System.out.println (sendmsg ( "18123456789,15123456789", "Dear 사용자, 확인 코드는" + sendmsgutil.createrandomvcode () + ", 60 초 동안 유효합니다. }}그런 다음 실행하십시오. 일반적으로 매개 변수가 올바르게 전달되고 사양에 따라 인터페이스 문서가 작동되면 전송이 성공하고 휴대 전화는 확인 코드를받습니다. 발생할 수있는 문제는 다음과 같습니다. 전송 된 문자 메시지의 내용에는 중국어가 달린 코드가있을 수 있으며 전송은 실패합니다. 해당 인코딩은 문자 메시지 플랫폼의 요구 사항에 따라 수행됩니다. 일반적으로 UTF-8 인코딩입니다.
완전한 코드 : SendMassage
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.