오늘 나는 여러 SMS 플랫폼을 발견했습니다. 실제로, 내가 가장 많이 사용하고 싶은 것은 SharesDK입니다. HTTP API SMS 기능을 사용하는 것은 낮을뿐만 아니라 최소 100RMB를 재충전 할 수도 있습니다. 그러나 리뷰가 너무 엄격하고 해당 앱도 SMS 기능을 통합해야하며 업로드 및 검토에 20 일 이상이 걸립니다. 나는 그것을 테스트 할 SMS 플랫폼을 찾고 싶기 때문에 잊혀졌습니다. 그런 다음 방금 www.wasun.cn에서 Baidu에서 임의의 문자 메시지 플랫폼을 가져갔습니다. 나는 그것이 당분간 나쁘지 않다고 느꼈다. 적어도 그것이 제공 한 테스트 계정은 5 초 이상 문자 메시지를받지 못했습니다. 나는 그것을 보았고 그것은 보통 3 초 또는 더 빠르다. 다음으로 SMS 인터페이스를 호출하는 방법과 사용 중에 발생하는 문제에 대해 이야기하겠습니다.
1. httprequest 메소드 요청 방법
그가 준 도모는 실제로 캡슐화되어 httpclient를 요청하는 데 사용됩니다. 그는이 클래스를 전에 .NET에서 사용했으며 .NET에는 HTTPWebRequest 클래스도 있습니다. Java의 코드를 살펴 보았고 그 기능은 URLConnection 클래스에 캡슐화되어야합니다. 시간과 캡슐화 방법으로 인해 인터넷에서 심층적 인 연구를 연구하지는 않았지만 .NET의 HTTPWebRequest와 동일한 의미를 가져야합니다. httpclient 클래스 데모 생성의 코드를 포함하여 다음 코드가 게시됩니다.
패키지 도우미; import java.io.bufferedReader; import java.io.ioexception; import java.io.inputStreamreader; import java.io.printwriter; import java.io.unsupportedencodingexception; import java.net.url; import java.net.url; import java.net.urlconnection; java.util.map; public class httprequest { /** * 지정된 URL * * @param url * url에게 get 메소드 요청을 보내려면 * @param param * 요청 매개 변수를 보내려면 요청 매개 변수는 name1 = value1 & name2 = value2의 형식이어야합니다. * 원격 자원으로 표시되는 원격 자원의 @return URL 응답 결과*/ public static string sendget (String URL, String Param) {String result = ""; 버퍼드 리더 in = null; {string urlnamestring = url + "?" + PARAM; url realurl = new URL (urlnamestring); // URL URLCONNECTION CONNECTION 사이의 연결을 엽니 다. = realUrl.openConnection (); // 일반 요청 속성을 설정합니다. Connection.setRequestProperty ( "Connection", "Keep-Alive"); Connection.setRequestProperty ( "사용자 에이전트", "Mozilla/4.0 (호환 가능; MSIE 6.0; Windows NT 5.1; Sv1)"); // 실제 연결을 만듭니다. connection.connect (); // 모든 응답 헤더 필드 맵을 가져옵니다. <문자열, 목록 <문자열 >> map = connection.getheaderFields (); // 모든 응답 헤더 필드 (문자열 키 : map.keyset ()) {System.out.println (key + "--->" + map.get (key)); } // 버퍼드 리더 입력 스트림을 정의하여 in = new bufferedReader에서 URL의 응답을 읽습니다 (new inputStreamReader (connection.getInputStream ())); 문자열 라인; while ((line = in.readline ())! = null) {result += line; }} catch (예외 e) {System.out.println ( "GET 요청을 보낼 때 예외가 발생했습니다!" + e); e.printstacktrace (); } // 입력 스트림을 닫으려면 마지막으로 블록을 사용하여 마지막으로 {try {if (in! = null) {in.close (); }} catch (예외 e2) {e2.printstacktrace (); }} 반환 결과; } /** * 지정된 URL * @param url * URL에 요청을 보내 요청 * @param param * 요청 매개 변수, 요청 매개 변수는 name1 = value1 & name2 = value2의 형태 여야합니다. * @return 응답 */ public static string sendpost (String URL, String Param) {printwriter out = null; 버퍼드 리더 in = null; 문자열 결과 = ""; try {url realurl = new URL (url); // urlConnection 사이의 연결을 엽니 다. conn = realurl.openConnection (); // 일반 요청 속성을 설정하여 Conn.setRequestProperty ( "accept", "*/*"); Conn.setRequestProperty ( "Connection", "Keep-Alive"); Conn.setRequestProperty ( "사용자 에이전트", "Mozilla/4.0 (호환 가능; MSIE 6.0; Windows NT 5.1; Sv1)"); // 게시물 요청을 보내려면 다음 두 줄을 Conn.SetDoOutput (true)로 설정해야합니다. conn.setdoinput (true); // urlConnection 객체에 해당하는 출력 스트림을 가져옵니다. // 요청 매개 변수를 보내십시오 .print (param); // 플러시 출력 스트림의 버퍼 out.flush (); // 버퍼드 리더 입력 스트림을 정의하여 in = new bufferedReader에서 URL 응답을 읽습니다 (new inputStreamReader (conn.getInputStream ()); 문자열 라인; while ((line = in.readline ())! = null) {result += line; }} catch (예외 e) {System.out.println ( "게시물 요청을 보낼 때 예외가 발생했습니다!" +e); e.printstacktrace (); } // 마침내 블록을 사용하여 출력 스트림을 닫고 입력 스트림을 마지막으로 {try {if (out! = null) {out.close (); } if (in! = null) {in.close (); }} catch (ioexception ex) {ex.printstacktrace (); }} try {result = new String (result.getBytes ( "iso8859-1"), "utf-8"); } catch (UnsupportedEncodingException e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } 반환 결과; }}2. 공식 데모 httpclient 메소드 요청 코드
// import java.io.fileInputStream; // import java.io.filenotfoundException; import java.io.ioexception; import org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.httpexception; org.apache.commons.httpclient.namevaluepair; import org.apache.commons.httpclient.methods.postmethod; import org.dom4j.document; import org.dom4j.documentexception; import org.dom4j.documentHelper; import org.dom4j.element; 공개 클래스 sendsms {private static string url = "http://121.199.?.178/webservice/sms.php?method=submit"; public static void main (String [] args) {httpclient client = new httpclient (); 메드 메드 메소드 = 새로운 후 메드 (URL); //client.getParams().SetContentCharset("gbk "); client.getParams (). setContentCharset ( "UTF-8"); method.setRequestHeader ( "contentType", "application/x-www-form-urlencoded; charset = utf-8"); 문자열 내용 = 새 문자열 ( "귀하의 확인 코드는 다음과 같습니다. 7528. 검증 코드를 다른 사람에게 누출하지 마십시오."); NameValuePair [] data = {// SMS 제출 새 이름 ValuePair ( "계정", "사용자 이름"), 새 NameValuePair ( "password", "password"), // placetext password 또는 32-bit md5 // new namevaluepair ( "password", util.stringutil.md5encode ( "))를 사용하여 암호를 암호화 할 수 있습니다. NameValuePair ( "Mobile", "Mobile Number"), New NameValuePair ( "Content", Content),}; Method.setRequestBody (데이터); try {client.executemethod (method); 문자열 hopplresult = method.getResponseBodyAsString (); //system.out.println(submitresult); 문서 doc = documentHelper.parsetext (upplerResult); 요소 root = doc.getRootElement (); 문자열 코드 = root.elementText ( "Code"); 문자열 msg = root.elementText ( "msg"); 문자열 smsid = root.elementText ( "SMSID"); System.out.println (코드); System.out.println (MSG); System.out.println (SMSID); if (code == "2") {System.out.println ( "SMS Submission Success"); }} catch (httpexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } catch (DocumentException e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} 0 3. 캡슐화 된 httprequest 코드를 호출하십시오
문자열 phoneMessageParameter = new String ( "계정 =? & password = wxhdcs@456 & content = verification code = [variable]. 검증 코드를 다른 사람에게 누출하지 마십시오. & mobile =? & stime = 2012-08-01%208 : 20 : 20 : sign =? & sign = pt & extno ="); returnResult = httprequest.sendpost ( "http://121.?.16.178/webservice/sms.php?method=submit", phonemessageparameter); out.println ( "<cript> alert ("+returnresult+");이 플랫폼을 사용하는 경우주의를 기울여야합니다. 공식 문서의 매개 변수 이름은 잘못되었고 데모는 올바르며 인터페이스는 WebServer에 기록됩니다. JSON 또는 XML 데이터가 아니라 표준 HTML 페이지를 반환 한 다음 필요한 모든 내용이 HTML의 태그로 작성됩니다. 테스트 컨텐츠 컨텐츠 인 경우 매개 변수는 지정된대로 작성해야합니다. 그렇지 않으면 오류 가보고됩니다. 공식적으로 구매하면 직접 템플릿 콘텐츠를 설정할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.