Java implémente la fonction de message SMS via la plate-forme SMS SMS
J'ai utilisé la fonction de l'envoi de messages texte dans le projet, mais en raison de restrictions internes, j'ai trouvé un simple en ligne aujourd'hui et je l'ai enregistré comme suit lorsque je n'ai rien à faire:
Ce programme est mis en œuvre en utilisant la plate-forme SMS SMS fournie par China Net Construction (la plate-forme fournit actuellement des utilisateurs enregistrés avec 5 SMS gratuits et 3 MMS gratuits, ce qui nous suffit. Ce qui suit est le code source du programme:
/ ** * @Author Dengsilinming * @Date 2012-9-18 * * / package com.dengsilinming.mail; Importer java.io.ioException; import org.apache.commons.httpclient.header; import org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.httpexception; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.postMethod; classe publique sendmsg_webchinese {/ ** * @author Dengsilinming * @Date 18 sept HttpClient (); PostMethod Post = new PostMethod ("http://gbk.sms.webchinese.cn"); // PostMethod Post = new PostMethod ("http://sms.webchinese.cn/web_api/"); post.AdDrequestHeader ("Content-Type", "Application / X-Www-Form-Urlencoded; charSet = GBK"); // Set Transcoding NameValuepair [] Data = {new NameValuepair ("UID", "DengSilinming"), // USERNAME REGIST "72da78da5ff54f450505"), // Après avoir réussi à vous inscrire, la clé obtenue après se connecter au site Web est un nouveau nomvaluepair ("smsmob", "12345678900"), // numéro de téléphone mobile nouveau NameValuepair ("SmStExt", "Ceci est un message dédié à des tests. contenu post.setRequestbody (données); client.executeMethod (post); En-tête [] en-têtes = post.getResponseHeaders (); int statuscode = post.getStaturScode (); System.out.println ("StatusCode:" + StatusCode); pour (en-tête h: en-têtes) {System.out.println ("---" + h.toString ()); } String result = new String (post.getResponseBodyAsstring (). GetBytes ("gbk")); System.out.println (résultat); }} Il y a trois packages en pot à utiliser:
Commons-Logging-1.1.1.jar
Commons-httpclient-3.1.jar
Commons-codec-1.4.jar
Le contenu suivant est extrait de l'API chinois Jianshe SMS:
GBK Encoding Envoi de l'adresse d'interface:
http://gbk.sms.webchinese.cn/?uid=Ser Nom de ce site & key = Interface Security Motword & smsmob = Mobile Number & smStext = SMS Contenu
UTF-8 Encodage d'envoi d'adresse d'interface:
http://utf8.sms.webchinese.cn/?uid=Ser Nom de ce site & key = Interface Security Motword & SMSMOB = Mobile Number & SMSTEXT = SMS Contenu pour obtenir le nombre d'adresses d'interface SMS (UTF8):
http://sms.webchinese.cn/web_api/sms/?action=SMS_NUM&uid=Username de ce site & key = Interface Security and Security Obtient SMS Numéro Adresse d'interface (GBK):
http://sms.webchinese.cn/web_api/sms/gbk/?action=SMS_NUM&uid=UNERNAME de ce site & key = Interface Security Motword
Conseil: lorsque HTTP appelle l'interface URL, la valeur du paramètre doit être codée par URL avant d'appeler
Veuillez utiliser un demi-coin pour séparer plusieurs numéros de téléphone mobile, tels que: 13888888886, 1388888887, 13888888888888
Voici une simple démo d'appeler les interfaces SMS dans différentes langues:
1. Appel ASP
<% 'Fonction commune' Entrez l'adresse de la page Web de destination URL, et la valeur de retour GethTTPPAGE est le code HTML de la fonction de page Web de destination Gethttppage (URL) DIM HTTP SET HTTP = Server.CreateObject ("MSXML2.XMLHTTP") Http.Open " Http.readystate <> 4 puis de sortie de la fonction fin si gethttppage = bytestobstr (http.ResponseBody, "gb2312") set http = rien si err.number <> 0 alors err.classeur final function bytestobstr (body, cset) dim objstream objstream = server.createObject ("" Adodb ") objstream.type = 1 objstream.mode = 3 objstream.open objstream.write body objstream.position = 0 objstream.type = 2 objstream.charset = cset byTestOstr sms_url = "http://sms.webchinese.cn/web_api/?uid=Account&key=Interface Key & smsmob = Mobile Number & Smstext = SMS Contenu" Response.Write GethTTPPAGE (SMS_URL)%> 2.C # Appel
// l'espace de noms requis à l'aide de System.net; Utilisation de System.io; Utilisation de System.Text; // Lorsque vous appelez, il vous suffit de passer l'URL orthographiée à la fonction. Jugez simplement la valeur de retour publique String gethtmlfromUrl (URL de chaîne) {String strret = null; if (url == null || url.trim (). toString () == "") {return strret; } String TargetUrl = url.trim (). toString (); essayez {httpwebRequest hr = (httpwebRequest) webRequest.create (TargetUrl); hr.useragent = "Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; hr.method = "get"; hr.timeout = 30 * 60 * 1000; WeBResponse hs = hr.getResponse (); Stream Sr = Hs.GetResponSeStream (); StreamReader Ser = new StreamReader (SR, Encoding.Default); strret = ser.readtoend (); } catch (exception ex) {strret = null; } return strret; } 3. Call Java
Importer java.io.UNSUPPORTEDENCODINGException; import org.apache.commons.httpclient.header; import org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.postMethod; classe publique sendmsg_webchinese {public static void main (String [] args) lève une exception {httpClient client = new httpclient (); PostMethod Post = new PostMethod ("http://gbk.sms.webchinese.cn"); post.AdDrequestHeader ("Content-Type", "Application / X-Www-Form-Urlencoded; charSet = GBK"); // Set Transcoding NameValuePair [] Data = {new NameValuepair ("UID", "Nom de l'utilisateur de ce site"), new nameValuepair ("Key", "Interface Security Password"), new NameValuepair ("smsmob", "numéro mobile"), new nameValuepair ("smstext", "contenu sms")}; post.setRequestbody (données); client.executeMethod (post); En-tête [] en-têtes = post.getResponseHeaders (); int statuscode = post.getStaturScode (); System.out.println ("StatusCode:" + StatusCode); pour (en-tête h: en-têtes) {System.out.println (h.toString ()); } String result = new String (post.getResponseBodyAsstring (). GetBytes ("gbk")); System.out.println (résultat); post.releaseconnection (); }} Téléchargement du package JAR
Commons-Logging-1.1.1.jar
Commons-httpclient-3.1.jar
Commons-codec-1.4.jar
4. Appel PHP
$ url = 'http: //sms.webchinese.cn/web_api/? uid = compte & key = interface key & smsmob = mobile numéro & smstext = sms contenu'; Echo get ($ url); function get ($ url) {if (function_exists ('file_get_contents')) {$ file_contents = file_get_contents ($ url); } else {$ ch = curl_init (); $ timeout = 5; curl_setopt ($ ch, curlopt_url, $ url); curl_setopt ($ ch, curlopt_returntransfer, 1); curl_setopt ($ ch, curlopt_connectTimeout, $ timeout); $ file_contents = curl_exec ($ ch); curl_close ($ ch); } return $ file_contents; } 5.VB.NET CALL
«Appelez pour envoyer SMS, Nolist pour recevoir le numéro. Utilisez plusieurs fois, séparé et 70 mots de contenu mémo
Fonction publique Sendsms (Byval Nolist comme chaîne, ByVal Memo comme chaîne) comme chaîne dim Url as String = "http://sms.webchinese.cn/web_api/?uid=Account&key=Interface Key & smsmob = Mobile Number & Smstext = SMS Content" DimClient As New net.webclient () Try 'DIMOS srcString as string = webclient.downloadString (URL) return srcstring satch return "-444" End Try final function
Après les tests, le code source Java ci-dessus peut être envoyé avec succès, mais d'autres langues n'ont pas de tests.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.