Mit der Funktion des Sendens von SMS -Verifizierungscodes verwendet die SMS -Plattform -Schnittstelle von Xinyitong und dann HTTPClient, um Postanforderungen zu simulieren oder Anforderungen in Java zu erhalten (siehe die SMS -Plattformanforderungen, die im Allgemeinen Postanforderungen sind), und rufen die von der SMS -Plattform bereitgestellte Schnittstelle an (einfach folgen Sie den Schnittstellenspezifikationen der SMS -Plattform). Abhängig vom Code:
Wenn Sie HTTPClient verwenden, müssen Sie es in das Projekt einführen:
Commons-httpclient-3.1.jar
Dieses Glaspaket,
Projektstruktur:
1. Erstellen Sie eine HTTP -Simulationsanforderungs -Toolklasse und schreiben Sie dann eine Postmethode oder erhalten Sie eine Methode
/*** Dateibeschreibung* @Description: Erweiterte Beschreibung* @copyright: 2015 Dreamtech.com.cn Inc. Alle Rechte reserviert* @Version: v6.0*/package com.demo.util; import Java.io.ioException; importil.util.map; import.commons.hommons.hommons.hommons.hommons.hommons.hommons.hommons.hmons.hmons.hmons.hmons.httpclient; org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.httpexception; import org.apache.commons.httpclient.simpleHttpConnectionManager; org.apache.commons.httpclient.methods.postMethod;/** * @Author: feizi * @date: 17. April 2015 um 9:26:34 Uhr * @ModifyUser: feizi * @modifydate: April 17, 2015 um 9:26:34 AM * @version: v6.0 */öffentlich Klassenklasse. * Httpclient simulierte Postanforderung * Methode Beschreibung * @DiScription: Erweiterte Beschreibung * @param url * @param params * @return String * @Author: feizi * @date: 17. April 2015 um 7:15:59 PM * @modifyuser: feizi Karte <String, String> Params) {// Erstellen Sie eine Instanz von httpclient httpclient httpclient httpclient = new httpclient (); // Erstellen Sie eine Instanz der Postmethode postmethode postmethode = new postmethod (URL); // Anforderungsheaderinformationen postmethod.setRequestheader ("Verbindung", "Close") festlegen; // Parameter hinzufügen für (Map.Entry <String, String> Eintrag: paramsSet ()) {postMethod.addParameter (Entry.getKey (), Entry.getValue ()); } // Verwenden Sie die vom System bereitgestellte Standard-Wiederherstellungsstrategie zum Festlegen der Anfrage-Wiederholungsverarbeitung unter Verwendung der Standard-Wiederholungsverarbeitung: Anfordern Sie dreimal httpclient.getParams (). // Verarbeitungsergebnissergebnisse erhalten String -Ergebnis = NULL; try {// http post request httpclient.executemethod (postMethod) ausführen; // Rückgabeverarbeitungsergebnis Ergebnis = postmethod.getResponseBodyAssstring (); } catch (httpexception e) {// Es trat eine tödliche Ausnahme auf, die möglicherweise auf ein nicht übereinstimmendes Protokoll oder ein Problem mit dem zurückgegebenen Inhaltssystem.out.println zurückzuführen sein kann ("Bitte überprüfen Sie die eingegebene URL!"); E. printstacktrace (); } catch (ioException e) {// Eine Netzwerkausnahme trat system.out.println ("Netzwerkausnahme auf!"); E. printstacktrace (); } endlich {// den Link postMethod.releaseconnection () freigeben; // Schließen Sie die httpclient -Instanz if (httpclient! httpclient = null; }} Rückgabeergebnis; } / ** * Httpclient -Simulate erhalten Sie eine Anforderung * Methode Beschreibung * @DiScription: Erweiterung Beschreibung * @param url * @param Params * @Return String * @Author: feizi * @date: 17. April 2015 um 7:15:28 * @modifyUser: feizi * @modifydate: April 17. April, 2015, 2015, 2015, 2015, 7:15:28 Uhr URL, Karte <String, String> Params) {// Konstrukte httpclient Instance httpclient client = new httpclient (); // Parameter String -String paramstr = ""; für (String -Schlüssel: params.keyset ()) {paramstr = paramstr + "&" + key + "=" + params.get (Schlüssel); } paramstr = paramstr.substring (1); // Erstellen Sie eine Instanz der Get -Methode getMethod -Methode = new getMethod (url + "?" + Paramstr); // das Rückgabeergebnis String -Ergebnis = NULL erhalten; Versuchen Sie {// Führen Sie die HTTP -Methodenanforderung client.executemethod (Methode) aus; // das Verarbeitungsergebnis zurückgeben. } catch (httpexception e) {// Es ist eine tödliche Ausnahme aufgetreten, die möglicherweise sein kann, dass das Protokoll falsch ist oder mit dem zurückgegebenen Content System.out.println etwas nicht stimmt ("Bitte überprüfen Sie die eingegebene URL!"); E. printstacktrace (); } catch (ioException e) {// Netzwerkausnahme trat system.out.println ("Netzwerkausnahme auf!"); E. printstacktrace (); } endlich {// Link -Methode veröffentlichen. ReleaseConnection (); // Schließen Sie die httpclient -Instanz if (client! client = null; }} Rückgabeergebnis; }}2. Erstellen Sie eine Klasse, generieren Sie einen Verifizierungscode und übergeben Sie dann die entsprechenden Parameter (verschiedene SMS -Plattformschnittstellen haben unterschiedliche Parameteranforderungen. Diese allgemeine SMS -Plattform bietet Schnittstellendokumente. Schauen Sie sich einfach das Dokument an und befolgen Sie dann die Anforderungen).
/*** Dateibeschreibung* @Description: Erweiterte Beschreibung* @Copyright: 2015 Dreamtech.com.cn Inc. Alle Rechte reserviert* @version: v6.0*/package com.demo.util; import Java.net.urlencoder; importieren Java.util.hashmap; 9:24:48 Uhr * @ModifyUser: feizi * @modifyDate: 17. April 2015 um 9:24:48 Uhr * @VERSION: v6.0 * /public class sendsgutil { /** * Send SMS -Nachricht * Methode Beschreibung * @DiScription: erweiterte Beschreibung * @param foße * @param * @param Inhalt @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@return * @ @ @ @ @@return * @ @ @ @ @@return * @ @ @ @@return * @ @ @ @@return * @ @ @ @ @@return 2015 um 7:18:08 Uhr * @ModifyUser: Feizu * @ModifyDate: 17. April 2015 um 7:18:08 Uhr */@Suppresswarnings ("Depress") public static String sendmsg (String -Phones, String -Inhalt) {// SMS -Schnittstelle URL Submission -Anhaltspflicht adresses Map <string, string> params = new HashMap <String, String> (); params.put ("zh", "Benutzerkonto"); params.put ("mm", "Benutzerkennwort"); params.put ("dxlbid", "SMS -Kategorienummer"); params.put ("extno", "extno"); // Mobiltelefonnummer werden mehrere Nummern mit englischen Kommas -Params ("Hm", Telefone) geteilt. // Benutzer codieren den Inhalt der SMS by URL params.put ("nr", urlencoder.encode (Inhalt)); return httprequestutil.getRequest (URL, Params); } / ** * Generieren Sie zufällig 6-Bit-Zufallsverifizierungscode * Methode Beschreibung * @DiScription: Erweiterte Beschreibung * @return * @Return String * @Author: feizi * @date: 17. April 2015 um 7:19:02 pm * @modifyuser: feizu // Vertifikation Code String vCode = ""; für (int i = 0; i <6; i ++) {vcode = vcode+(int) (math.random () * 9); } return vCode; }/** * Test * Methode Beschreibung * @DiScription: Erweiterte Beschreibung * @param args * @return void * @Author: feizu * @date: 17. April 2015 um 7:26:36 PM * @ModifyUser: feizi * @modifydate: 17. April 2015 um 7:26:36 PM */public static VOID Main (String [] [] arks). System.out.println (sendsgutil.creferandomvcode ()); // system.out.println ("& ecb = 12" .substring (1)); System.out.println (sendsg ("18123456789,15123456789", "Sehr geehrter Benutzer, Ihr Verifizierungscode ist" + sendsgutil.createRandomvcode () + ", gültig für 60 Sekunden. Wenn Sie Fragen haben, fragen Sie 400-069-2886 (Kundendienstnummer). }}Dann führen Sie es aus. Wenn die Parameter korrekt übergeben werden und das Schnittstellendokument gemäß den Spezifikationen betrieben wird, ist das Senden erfolgreich und das Mobiltelefon erhält den Bestätigungscode. Das Problem, das möglicherweise auftritt, ist: Der Inhalt der gesendeten Textnachricht kann chinesischer verstümmelter Code haben, und das Senden ist erfolglos. Die entsprechende Codierung wird gemäß den Anforderungen der SMS -Plattform durchgeführt. Es ist normalerweise UTF-8-Codierung.
Vollständiger Code: sendmassage
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.