以下示例Java类sendms可用于从Java通过NowSMS发送SMS文本消息。该脚本也可以从以下位置下载 http://www.zgbianpofanghuwang.com/download/sendsms.java.txt.
要从Java发送MMS消息,请参阅: http://www.zgbianpofanghuwang.com/doc/submitting-mms-messages/send-mms-message-with-java
在此示例中定义的sendms类可用于发送简单的SMS文本消息,以及许多类型的二进制SMS消息,包括WAP Push。 (许多SMSC连接不支持二进制SMS支持。)
该类支持为NowSMS定义的许多URL参数,并且可以轻松地进行调整以支持其他参数。
以下示例说明了如何使用该类。
例–发送一条简单的短信:
sendsms.init(); sendsms.server = "//sample.smshosts.com/"; sendsms.用户 = "username"; sendsms.密码 = "password"; sendsms.电话号码 = "+9999999999"; sendsms.文本 = "这是一条测试信息"; sendsms.send(); |
NowSMS URL参数支持作为sendms类的方法,方法名称与URL参数名称匹配,但所有方法均使用小写字母。
除了URL参数方法外,还定义了以下其他方法:
sendsms.init(); |
init方法初始化SMS消息对象。
sendsms.server = "//sample.smshosts.com/"; |
服务器方法设置NowSMS服务器的URL地址。
sendsms.send(); |
send方法将SMS消息提交给NowSMS。 (send方法返回分配给已提交邮件的邮件ID列表,每行一个邮件ID,格式如下:MessageID = xxxxxxxxxxxxxx.req,收件人= xxxxxxxxxxxx)
支持的设置URL参数的方法:
sendsms.用户 = "username"; sendsms.密码 = "password"; |
这些方法指定了 “SMS Users” 提交邮件的帐户。
sendsms.电话号码 = "recipient"; |
此方法指定此消息应发送到的收件人电话号码。这可以是收件人电话号码的逗号分隔列表或通讯组列表名称。
sendsms.文本 = "text of message"; |
此方法指定消息的文本。 (或对于WAP Push消息,是与WAP Push URL关联的文本。)
sendsms.数据 = "hexstring"; |
此方法指定用于发送二进制SMS消息的二进制数据的十六进制字符串。
sendsms.乌德 = "hexstring"; |
此方法为SMS消息的用户数据标题(UDH)指定二进制数据的十六进制字符串。
sendsms.pid = "PID Value"; |
此方法指定代表此SMS消息的SMS协议ID(PID)的十六进制值。
sendsms.DCS = "DCS Value"; |
此方法指定一个十六进制值,表示此消息的SMS数据编码方案(DCS)的值。
sendsms.发件人 = "Sender"; |
此方法指定要为此消息指定的发件人(源)地址。 (注意:通过GSM调制解调器发送消息时,无法覆盖发件人地址。)
sendsms.smscroute = "route name"; |
此方法指定用于消息的出站SMSC路由。 (有关SMS消息路由的更多信息,请参阅 SMS消息路由逻辑 )
sendsms.要求的收据 = "Yes"; |
此方法可用于请求交货收据。
sendsms.源端口 = "3333"; sendsms.驱逐 = "3333"; |
这些方法可用于指定用于将SMS消息路由到接收方手机上的特定应用程序的源端口和目标端口。
sendsms.延迟到 = "YYYYMMDDHHMM"; |
此方法允许将消息提交到NowSMS并排队等待以后的处理。此参数的值应采用以下格式:“YYYYMMDDHHMM”,指示将邮件延迟到的日期和时间,其中YYYY是年份,MM是月份,DD是日期,HH是小时(以24小时格式),而MM是分钟。
sendsms.wapurl = "http://x/path"; |
指定应发送WAP推送消息,这是WAP推送消息中要发送的URL。
例–发送一条简单的短信:
sendsms.init(); sendsms.server = "//sample.smshosts.com/"; sendsms.用户 = "username"; sendsms.密码 = "password"; sendsms.电话号码 = "+9999999999"; sendsms.文本 = "这是一条测试信息"; sendsms.send(); |
例–将短信发送到手机上运行的Java小程序的特定应用程序端口:
sendsms.init(); sendsms.server = "http://127.0.0.1:8800/"; sendsms.用户 = "username"; sendsms.密码 = "password"; sendsms.电话号码 = "+9999999999"; sendsms.文本 = "这是一条测试信息"; sendsms.驱逐 = "3333"; sendsms.send(); |
例–发送WAP推送消息:
sendsms.init(); sendsms.server = "http://127.0.0.1:8800/"; sendsms.用户 = "username"; sendsms.密码 = "password"; sendsms.电话号码 = "+9999999999"; sendsms.文本 = "这是一条测试信息"; sendsms.wapurl = "http://www.zgbianpofanghuwang.com/"; sendsms.send(); |
完整的Java类如下所示。该脚本也可以从以下位置下载 http://www.zgbianpofanghuwang.com/download/sendsms.java.txt.
import java.net.*; import java.io.*; public class sendsms { public static String server; public static String 用户; public static String 密码; public static String 电话号码; public static String 文本; public static String 数据; public static String 乌德; public static String pid; public static String DCS; public static String 发件人; public static String 有效期; public static String 服务类型; public static String smscroute; public static String 要求的收据; public static String 源端口; public static String 驱逐; public static String 延迟到; public static String 语音信箱; public static String wapurl; public static String wapsl; public static String url_str; public static void init () { server = null; 用户 = null; 密码 = null; 电话号码 = null; 文本 = null; 数据 = null; 乌德 = null; pid = null; DCS = null; 发件人 = null; 有效期 = null; 服务类型 = null; smscroute = null; 要求的收据 = null; 源端口 = null; 驱逐 = null; 延迟到 = null; 语音信箱 = null; wapurl = null; wapsl = null; } public static void setvar (String argname, String argvalue) { if (argname != null) { if (argvalue != null) { url_str = url_str + "&" + argname + "="; try { String encoded = URLEncoder.encode (argvalue, "UTF-8"); url_str = url_str + encoded; } catch (UnsupportedEncodingException e) { url_str = url_str + argvalue; } } } } public static String send () { String returnstring; returnstring = null; if (server == null) { System.out.println("未设置sendms.server值"); return returnstring; } url_str = server + "?"; setvar("user", 用户); setvar("password", 密码); setvar("phonenumber", 电话号码); setvar("text", 文本); setvar("data", 数据); setvar("udh", 乌德); setvar("pid", pid); setvar("dcs", DCS); setvar("sender", 发件人); setvar("validity", 有效期); setvar("servicetype", 服务类型); setvar("smscroute", smscroute); setvar("receiptrequested", 要求的收据); setvar("sourceport", 源端口); setvar("destport", 驱逐); setvar("delayuntil", 延迟到); setvar("voicemail", 语音信箱); setvar("wapurl", wapurl); setvar("wapsl", wapsl); try { URL url2=new URL(url_str); HttpURLConnection connection = (HttpURLConnection) url2.openConnection(); connection.setDoOutput(false); connection.setDoInput(true); String res=connection.getResponseMessage(); System.out.println("Response Code ->"+res); int code = connection.getResponseCode () ; if ( code == HttpURLConnection.HTTP_OK ) { //Get response 数据. BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String str; while( null != ((str = in.readLine()))) { if (str.startsWith("MessageID=")) { returnstring = returnstring + str + "\r\n"; System.out.println(str); } } connection.disconnect() ; } } catch(IOException e) { System.out.println("无法创建新的网址"+e.getMessage()); } return returnstring; } } |
使用此脚本的系统要求:
该脚本连接到NowSMS服务器,并将请求发送到NowSMS服务器以发送消息。
如果您没有安装NowSMS服务器,则此脚本将不起作用。
NowSMS可以作为云服务使用,也可以安装在Windows PC上。要发送SMS或MMS消息,NowSMS还需要GSM调制解调器,Android手机或SMS服务提供商连接。
可以从以下网址下载NowSMS软件的30天免费试用版: http://www.zgbianpofanghuwang.com/download-free-trial
现在的SMS / MMS网关或 NowSMS Lite 可以使用。 NowSMS Lite 可以使用单个GSM调制解调器或Android手机作为调制解调器连接来发送SMS和MMS消息。完整产品支持多个调制解调器和/或服务提供商连接。
在尝试使用脚本与NowSMS进行交互之前,您应验证NowSMS的配置正确,并且可以使用其内置的Web界面发送SMS消息。对于Android手机或GSM调制解调器连接,可在此处找到快速入门指南: http://www.zgbianpofanghuwang.com/doc/quick-start-guide
一旦确认NowSMS可以独立运行,就必须更改脚本中引用的IP地址以指向NowSMS服务器。我们的示例脚本使用的IP地址为127.0.0.1,这是当前PC的特殊回送地址。如果您的脚本在不同于NowSMS服务器的系统上运行,请将127.0.0.1更改为对您的环境有效的主机名或IP地址。还需要在NowSMS服务器上定义一个与脚本中的用户帐户匹配的帐户凭据的SMS用户帐户。