Java implementa a função de mensagem SMS através da plataforma SMS SMS
Usei a função de enviar mensagens de texto no projeto, mas devido a restrições internas, encontrei um simples online hoje e o gravei da seguinte maneira quando não tenho nada para fazer:
Este programa é implementado usando a plataforma SMS SMS fornecida pela China Construction (a plataforma atualmente fornece aos usuários registrados 5 SMS gratuitos e 3 MMS gratuitos, o que é suficiente para testarmos. Você precisa se registrar antes de usar e o endereço de registro é http://sms.webchinese.cn/reg.shtl). A seguir, o código -fonte do programa:
/ ** * @Author Dengsilinming * @date 2012-9-18 * */ package com.dengsilinming.mail; importar java.io.ioException; importar org.apache.commons.httpclient.header; importar org.apache.commons.httpclient.httpclient; importar org.apache.commons.httpclient.httpclient; importar org.apache.commons.httpclient.httPexception; importar org.apache.commons.httpclient.namevaluepair; importar org.apache.commons.httpclient.methods.postMethod; public class Sendmsg_webchinese { / ** * @Author Dengsilinming * @Date 18 de setembro de 2012 * @Time 9:38:25 AM * @param args * @throws ioexception * @throws httPexception * @Description * / public STATID Maid Main (String []) HttpClient (); Post method 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-corm-urlencoded; charset = gbk"); // Definir namevaluepair transcodificante [] data = {new NameValuePair ("uid", "dengsilinming", // registro username nameValuepAir (UID "," denkinming ", // Registrado NameValuePair (UID", " "72DA78DA5FF54F4F4505"), // Após o registro com sucesso, a chave obtida após o login no site é new NameValuepair ("SMSMOB", "12345678900"), // número de telefone celular NOMEVALUEPAIR ("SMSTEXT"? post.setRequestbody (dados); client.Executemethod (post); Cabeçalho [] cabeçalhos = post.getResponseHeaders (); int statusCode = post.getStatuscode (); System.out.println ("StatusCode:" + StatusCode); for (cabeçalho H: cabeçalhos) {System.out.println ("---" + h.toString ()); } String resultado = new String (post.getResponseBodyAsstring (). GetBytes ("gbk")); System.out.println (resultado); }} Existem três pacotes JAR para usar:
Commons-Logging-1.1.1.jar
Commons-httpclient-3.1.jar
Commons-Codec-1.4.Jar
O conteúdo a seguir é extraído da API da China Jianshe SMS SMS:
Endereço de interface de envio de codificação GBK:
http://gbk.sms.webchinese.cn/?uid=user Nome deste site & key = Segurança de segurança da interface & SMSMOB = Número de celular e SMSTEXT = Conteúdo SMS
UTF-8 Codificação Endereço de interface de envio:
http://utf8.sms.webchinese.cn/?uid=user Nome deste site & key = Segurança da interface Senha e SmsMob = Número do celular & SMSTEXT = Conteúdo SMS para obter o número de endereço de interface SMS (UTF8):
http://sms.webchinese.cn/web_api/sms/?action=sms_num&uid=username deste site & key = Segurança e segurança da interface Obtenha o endereço de interface do número SMS (GBK):
http://sms.webchinese.cn/web_api/sms/gbk/?action=sms_num&uid=username deste site & key = senha de segurança da interface
Dica: Quando o HTTP chama a interface URL, o valor do parâmetro deve ser codificado de URL antes de ligar
Use meio canto para separar vários números de celulares, como: 13888888886, 1388888887, 1388888888888888 Envie mensagens de texto para até 50 telefones celulares por vez e suportar mensagens de texto longas, até 300 palavras, mensagens de texto ordinárias 70 palavras/pós
Aqui está uma demonstração simples de chamar interfaces de SMS em diferentes idiomas:
1. CHAMADA ASP
<% 'Common Function' Enter the URL destination web page address, and the return value getHTTPPage is the html code of the destination web page function getHTTPPage(url) dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.send() if Http.readystate<>4 then Função de saída End End If Gethtppage = BytestObstr (http.Responsebody, "GB2312") Definir http = nada se err.number <> 0 então err.clear thend função. objStream.open objStream.write corpo objStream.position = 0 objStream.type = 2 objStream.charset = cset bytestobstr = objStream.readtext objStream.close Definir sua conta e senha e senha e senha e senha e senha da sua conta e senha e senha e senha da sua conta e senha e senha da sua conta e senha e senha da sua conta e senha e senha da sua conta e sms_url = "http://sms.webchinese.cn/web_api/?uid=account&key=interface key & smsmob = número do celular & smstext = SMS Content" Response.write gethtppage (sms_url) %> 2.C# ligue
// o espaço para nome necessário usando o System.net; usando System.io; usando System.Text; // Ao ligar, você só precisa passar o URL soletrado para a função. Basta julgar o valor de retorno public string gethtmlfromurl (string url) {string strret = null; if (url == null || url.trim (). tostring () == "") {return strret; } string TargetUrl = url.trim (). ToString (); tente {httpwebrequest hr = (httpwebrequest) webrequest.create (Targeturl); hr.UserAgent = "Mozilla/4.0 (compatível; MSIE 6.0; Windows NT 5.1)"; hr.method = "get"; Hr.Timeout = 30 * 60 * 1000; WebSponse hs = hr.getResponse (); Stream sr = hs.getResponsestream (); StreamReader Ser = new StreamReader (sr, coding.default); strret = ser.readtoend (); } catch (exceção ex) {strret = null; } retornar strret; } 3.Java Chamada
importar java.io.unsupportEnCodingException; importar org.apache.commons.httpclient.header; importar org.apache.commons.httpclient.httpclient; importar org.apache.commons.httpclient.namevaluepair; importar org.apache.commons.httpclient.methods.postMethod; classe pública sendmsg_webchinese {public static void main (string [] args) lança exceção {httpclient client = new httpclient (); Post method 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", "user name of this site"),new NameValuePair("Key", "interface security password"),new NameValuePair("smsMob","mobile número "), new nameValuepair (" SmStext "," SMS Content ")}; post.setRequestbody (dados); client.Executemethod (post); Cabeçalho [] cabeçalhos = post.getResponseHeaders (); int statusCode = post.getStatuscode (); System.out.println ("StatusCode:"+StatusCode); para (cabeçalho H: cabeçalhos) {System.out.println (h.toString ()); } String resultado = new String (post.getResponseBodyAsstring (). GetBytes ("gbk")); System.out.println (resultado); post.releasEConnection (); }} Download do pacote JAR
Commons-Logging-1.1.1.jar
Commons-httpclient-3.1.jar
Commons-Codec-1.4.Jar
4. CHAMADA PHP
$ url = 'http: //sms.webchinese.cn/web_api/? uid = conta e chave = chave de interface & smsmob = número do celular & smStext = SMS Content'; eco get ($ url); function get ($ url) {if (function_exists ('file_get_contents')) {$ file_contents = file_get_contents ($ url); } else {$ ch = curl_init (); $ timeout = 5; curl_setot ($ CH, Curlopt_url, $ url); Curl_SESTOPT ($ CH, Curlopt_ReTurnTransfer, 1); Curl_SESTOPT ($ CH, Curlopt_ConnectTimeout, $ Timeout); $ file_contents = curl_exec ($ ch); curl_close ($ ch); } retornar $ file_contents; } 5.VB.NET CALL
'Ligue para enviar SMS, nolista para receber o número. Use várias vezes, separado e 70 palavras de conteúdo de memorando
Função pública envia (nolista byval nolista como string, byval memorando como string) como string dim url como string = "http://sms.webchinese.cn/web_api/?uid=account&key=interface key & smsmob = celular & smsText = sms" Dim Webclient como net.wb.web = número de celular e smstext = sms "Dim Webcient como líquido srcString como string = webclient.DownloadString (URL) Return srcString Catch Return "-444" Função final de tentativa
Após o teste, o código -fonte Java acima pode ser enviado com sucesso, mas outros idiomas não têm testes.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.