** 快速开发 SMS ** ** 应用的程序接口 **
随着手机和 SMS 在使用者中的日益普及,很多 IT 应用系统的建设者、使用者都希望能够在自己的应用系统中增加 SMS 的功能。为了增加 SMS 的功能,开发者需要获得稳定、可靠、开发简单的短消息接口。
** 本文主要讲述如何一步步进行开发,如何开通部分见网站的具体说明 : http://www.wsms.cn/ 。 **
我们提供了两种方式的发送短消息的调用接口供调用,我们同时提供接收短消息的接口:
** 第一步:开通发送和接收的账户: **
进入 www.wsms.cn ,注册用户名 / 密码 / 手机号, 设置计费手机号码。具体的流程参见网站的说明。
** 第二步:利用最简单的方式: URL ** ** 来收发短消息: **
** ** ** 发送部分: ** ** **
1 .在程序中调用 URL ,并把调用参数通过 URL 传递给服务器即可。
如: http://www.wsms.cn/ws/sms.aspx? msg= hello☎=1370181****&sender=sungz&password=****&tag=hello&encoding=gb2312
encoding 是编码方式 ,可以是 gb2312 / utf8 / big5 。缺省是 gb2312 。
可以在 IE 的地址栏中直接敲入该 URL 进行测试。
** C# ** ** 示例: **
> > private void button1_Click( object sender, System.EventArgs e) >> >> { >> >>> System.Net.WebProxy proxy = new System.Net.WebProxy("ws-isa-01:8080"); >>> >>> proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; >>> >>> System.Net.GlobalProxySelection.Select = proxy; >>> >>> System.Net.HttpWebRequest wr =(HttpWebRequest)WebRequest.Create( new Uri("http://www.wsms.cn/ws/sms.aspx?msg= 您好 ☎=1370181****&sender=sungz&password=****&tag=hello 码 " )); >>> >>> WebResponse ws = wr.GetResponse(); >> >> }
2 、服务器如果成功处理将返回:
>
> > ** ** < MessageStatus status =" OK " />
3 、服务器如果不能成功处理将返回错误信息,例如:
> ** **
> > ** ** < MessageStatus status =" ** 错误: 号码不正确 1370181 ** " />
** 接收部分: ** ** **
本模块采用最简单的轮询的方式。
客户端软件不断调用函数查询是否有新的 SMS ,返回 XML 数据集。同时如果填写了邮件地址,也会发邮件通知。
调用方式是:
http://www.wsms.cn/ws/ getsms.aspx?sender=xxx&password=xxx&lastid=xxx&encoding=gb2312
sender= 用户名
password= 密码
lastid =xxx ( lastid 是上次系统返回短消息的最大的 id. 系统返回大于 lastid 的短消息的 XML)
encoding 是编码方式 ,可以是 gb2312/ utf8 / big5 。 缺省是 gb2312 。
可以在 IE 的地址栏中直接敲入该 URL 进行测试。
Java 的 XML 分析如例子:
package testsms ;
import javax.xml.parsers .*;
import javax.xml.transform .*;
import javax.xml.transform.dom.DOMSource ;
import javax.xml.transform.stream.StreamResult ;
import org.w3c.dom.*;
import java.util .*;
class MySMS {
public String id,smsid,sender,carrierid,serviceid,destination,txt,tm,status ;
public MySMS (){
}
}
public class MyXML {
public MyXML () {
}
public MySMS [] parseXML ()
{
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ( );
DocumentBuilder db = dbf.newDocumentBuilder ( );
//Document doc = db.parse ( "http://www.wsms.cn/ws/getsms.aspx?sender=sungz&password=***&lastid=5");
Document doc = db.parse("E:\\x.xml");
// 获得 Root 元素
Element element = doc.getDocumentElement();
// 获得 Root 元素的子节点列表
NodeList nodelist = element.getElementsByTagName("Table");
if(nodelist.getLength() <=0) return null;
MySMS [] sms = new MySMS [ nodelist.getLength ()];
for ( int i =0;i< nodelist.getLength (); i ++){
sms [ i ] = new MySMS ();
Element link =( Element) nodelist.item ( i );
try{
sms [ i ].id= link.getElementsByTagName ("id").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ]. smsid = link.getElementsByTagName (" smsid ").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ]. carrierid = link.getElementsByTagName (" carrierid ").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ]. serviceid = link.getElementsByTagName (" serviceid ").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ].destination= link.getElementsByTagName ("destination").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ].txt= link.getElementsByTagName ("txt").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ].tm= link.getElementsByTagName ("tm").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
try{
sms [ i ].status= link.getElementsByTagName ("status").item(0). getFirstChild (). getNodeValue () ;
}catch (Exception e){
e.printStackTrace ( );
}
}
return sms ;
}
catch ( Exception r){
r.printStackTrace ( );
return null;
}
}
}
** 第二步 : ** ** 使用 WeService ** ** 调用来收发短消息: **
将介绍如何利用 VisualStudio.NET 和短消息接口就快速开发出一个发送 SMS 的 Web 应用程序。 ** ** ** 下载例子代码 ** 下载WinRar
** 程序设计: **
** ** ** 第一步 : ** 打开 VS.NET ,创建一个 ASP.NET WebApplication : smsweb 。
** **
** ** ** 第二步 : ** 在 Solution Explorer 的 Reference 上按鼠标右键,添加一个 Web Reference)
** **
** ** ** 第三步 : ** 在 Solution Explorer 的 Reference 上按鼠标右键,添加一个 Web Reference ,地址是: http://www.wsms.cn/ws/sms.asmx 。并按“ Add Reference ”增加到项目中。
** **
在 VS.NET 的 Solution Explorer 中会增加一个 cn.wsms.www 的 Web Reference 。你可以点击右键将它改名成 wsms 。
** ** ** 第四步 : 发送编码 **
在一个 Button 的事件处理函数中增加 :
private void button1_Click( object sender, System.EventArgs e)
<SPAN style="mso-tab-count: