Heute habe ich mehrere SMS -Plattformen gefunden. Tatsächlich ist derjenige, den ich am meisten verwenden möchte, SharesDK. Die Verwendung der HTTP -API -SMS -Funktion ist nicht nur niedrig, sondern kann auch mindestens 100 RMB aufladen. Die Überprüfung ist jedoch zu streng, und die entsprechende App muss auch ihre SMS -Funktion integrieren, und es wird mehr als 20 Tage dauern, bis sie hochgeladen und prüft. Ich möchte nur eine SMS -Plattform finden, um sie zu testen, also wird es vergessen. Dann habe ich gerade eine zufällige SMS -Plattform auf Baidu unter www.wasun.cn genommen. Ich hatte das Gefühl, dass es vorerst nicht schlecht war. Zumindest das von ihm angegebene Testkonto erhielt nicht länger als 5 Sekunden Textnachrichten. Ich schaute es mir an und es war normalerweise 3 Sekunden oder sogar schneller. Als nächstes werde ich über die Methode zum Aufrufen der SMS -Schnittstelle und über die Probleme beim Gebrauch sprechen.
1. Anforderungsmethode Httprequest -Methode
Der Domo, den er angegeben hat, wird tatsächlich verkapselt, mit dem HTTPCLIENT anfordern wird. Er hat diese Klasse in .NET schon einmal verwendet, und es gibt auch die httpwebRequest -Klasse in .NET. Ich habe mir den Code in Java angesehen und seine Funktion sollte in die UrlConnection -Klasse eingekapselt werden. Aus Zeit- und Kapselungsmethoden habe ich keine eingehende Forschung im Internet untersucht, sollte aber die gleiche Bedeutung haben wie httpwebRequest in .NET. Der folgende Code wird veröffentlicht, einschließlich des Codes der HTTPClient -Klasse der Demogeneration.
Pakethelfer; Import Java.io.BufferedReader; Import Java.io.ioxception; Import Java.io.inputStreamReader; Import Java.io.printwriter; Import Java.io.unsupportedencodingException; Import Java.Net.url; java.util.map; öffentliche Klasse httprequest { /** * Senden Sie die Anforderung zur Methode GET an die angegebene URL * * @param URL * URL, um die Anforderung * @param Parameter * Anforderungsparameter zu senden. * @return URL -Antwort Ergebnis der Remote -Ressource, die durch die Remote -Ressource dargestellt wird BufferedReader in = null; Versuchen Sie {String urlnamestring = url + "?" + Param; URL realUrl = neue URL (urlnamestring); // Öffnen Sie die Verbindung zwischen der URL -URLConnection Connection = RealUrl.Openconnection (); // Setzen Sie die allgemeine Anfrage -Attributverbindung. Connection.SetRequestProperty ("Verbindung", "Keep-Alive"); Connection.SetRequestProperty ("Benutzer-Agent", "Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)"); // eine tatsächliche Verbindungsverbindung erstellen.Connect (); // Alle Antwort -Header -Felder karten <String, Liste <String >> map = Connection.GetheaDerFields (); // Alle Antwort-Header-Felder für (String-Schlüssel: map.keyset ()) {System.out.println (Schlüssel + "--->" + map.get (Schlüssel)); } // Definieren Sie den BufferedReader -Eingangsstream, um die Antwort der URL in = neuer BufferedReader (neuer InputStreamReader (Connection.GetInputStream ())) zu lesen; Stringlinie; while ((line = in.readline ())! = null) {result += line; }} catch (Ausnahme e) {System.out.println ("Ausnahme ist beim Senden einer GET -Anfrage aufgetreten!" + e); E. printstacktrace (); } // Verwenden Sie schließlich Block, um den Eingabestream schließlich zu schließen. {Try {if (in! = Null) {in.close (); }} catch (Ausnahme e2) {e2.printstacktrace (); }} Rückgabeergebnis; } /** * Senden Sie eine Anforderung an die angegebene URL * @Param URL * URL, um den Anforderungsanforderung zu senden * @return Antwort Ergebnis der Remote -Ressource, die durch */ public static String SendPost (String -URL, String -Param) {printwriter out = null; BufferedReader in = null; String result = ""; Versuchen Sie {url realurl = new URL (URL); // Öffnen Sie die Verbindung zwischen urlConnection conn = realUrl.openconnection (); // Setzen Sie das allgemeine Anfrageattribut Conn.SetRequestProperty ("Accept", "*/*"); Conn.SetRequestProperty ("Verbindung", "Keep-Alive"); Conn.SetRequestProperty ("User-Agent", "Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)"); // Um eine Postanforderung zu senden, müssen Sie die folgenden zwei Zeilen auf Conn.SetDoOutput (True) festlegen. Conn.SetDoInput (true); // den Ausgabestream abrufen, der dem urlConnection -Objekt entspricht = neuer Pressewriter (conn.getOutputStream ()); // den Anforderungsparameter aussenden.print (param); // puffer out.flush () des Flush -Ausgangsstroms; // Definieren Sie den BufferedReader -Eingangsstream, um die URL -Antwort in = neuer BufferedReader (New InputStreamReader (Conn.GetInputStream ())) zu lesen; Stringlinie; while ((line = in.readline ())! = null) {result += line; }} catch (Ausnahme e) {System.out.println ("Ausnahme ist beim Senden einer Postanforderung aufgetreten!" +e); E. printstacktrace (); } // Verwenden Sie schließlich blockiert, um den Ausgabestream und den Eingabestream schließlich zu schließen. {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 (unportedenCodingException e) {// todo automatisch generierter Catch-Block e.printstacktrace (); } Rückgabeergebnis; }}2. Offizieller Demo HTTPClient -Methode -Anforderungscode
// Java.io.FileInputStream importieren; // Java.io.FilenotFoundException; importieren java.io.ioxception; import org.apache.commons.httpclient.httpclient; importieren 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; öffentliche Klasse sendet {private statische String url = "http://121.199.?.178/webservice/sms.php?method=submit"; public static void main (string [] args) {httpclient client = new httpclient (); Postmethod method = new postmethod (URL); //client.getParams().SetContentCharset("GBK "); client.getParams (). setContentCharSet ("utf-8"); method.setRequestheader ("contentType", "application/x-www-form-urlencoded; charSet = utf-8"); String content = new String ("Ihr Verifizierungscode ist: 7528. Bitte lenken Sie den Verifizierungscode nicht an andere."); NAMEVALUEPAIR [] dATA = {// SMS SMS NEU NAMEVALUEPAIR ("Account", "Benutzername"), neuer NameValuePair ("Passwort", "Passwort"), // Passwort kann mit PlainText-Passwort oder 32-Bit MD5 // New NameVAILUEPAIR ("Passwort", util.stringutil.md5encode ("Passwort", "Password", "Password", "Passwort", "Passage", "Passage", "Passage", "Passage", ",", ",", "," Passwort "," Passage ",", ",", "," Passwort "," Passage ",", "Passage", ",", ",", ",", "Kennwort", utringutil.md5. ")," password ", util.stringutil.md5."). NAMEVALEPAIR ("Mobile", "Handynummer"), neuer NameValuePair ("Inhalt", Inhalt),}; method.setRequestBody (Daten); try {client.executemethod (Methode); String subjektresult = method.getResponseBodyAssstring (); //System.out.println(submitresult); Document doc = documentHelper.ParsetExt (subjektresult); Element root = doc.getrootelement (); String code = root.elementText ("Code"); String msg = root.elementText ("msg"); String smsid = root.elementText ("smsid"); System.out.println (Code); System.out.println (MSG); System.out.println (SMSID); if (code == "2") {System.out.println ("SMS -Einreichung erfolgreich"); }} catch (httpexception e) {// Todo automatisch generierter Block e.printstacktrace (); } catch (ioException e) {// Todo automatisch generierter Catch-Block e.printstacktrace (); } catch (documentException e) {// Todo automatisch generierter Block e.printstacktrace (); }} 0 3. Rufen Sie den eingekapselten HTTPrequest -Code auf
String PhonEmessageParameter = new String ("account =? & Password = wxhdcs@456 & content = Ihr Verifizierungscode lautet: [Variable]. Bitte lenken Sie den Verifizierungscode nicht an andere. returnResult = httprequest.sendPost ("http://121.?.16.178/webservice/sms.php?method=Submit", PhonemessageParameter);Wenn Sie diese Plattform nutzen, sollten Sie darauf achten. Der Parametername in seinem offiziellen Dokument ist falsch, die Demo ist korrekt und seine Schnittstelle ist im Webserver geschrieben. Es gibt nicht JSON- oder XML -Daten zurück, sondern eine Standard -HTML -Seite, und dann sind alle erforderlichen Inhalte in den Tags in der HTML geschrieben. Wenn es sich um einen Inhalt des Testinhalts handelt, muss der Parameter wie angegeben geschrieben werden, andernfalls wird ein Fehler gemeldet. Wenn Sie es offiziell kaufen, können Sie den Vorlageninhalt selbst einstellen.
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.