快速开发SMS应用的程序接口
?
快速开发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&phone=1370181****&sender=sungz&password=****&tag=hello&encoding=gb2312 ??????? ????? encoding 是编码方式 ,可以是 gb2312????? / utf8 / big5 。缺省是gb2312。
?
??????? 可以在IE的地址栏中直接敲入该URL进行测试。
????? ???????????? C#示例:?
?
??? 2、服务器如果成功处理将返回:???????
??? 3、服务器如果不能成功处理将返回错误信息,例如:???????
接收部分:
?
本模块采用最简单的轮询的方式。
?
客户端软件不断调用函数查询是否有新的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) ??????????? { ????????????????? wsms.sms sms = new wsms.sms(); ????????????????? string str = sms.SendSMS("你好","137-181XXXX","username","password","test"); ????????????????? if ( str =="" ) str ="成功" ; ????????????????? MessageBox.Show ("发送结果:"+str); ???????? }
?
SendSMS ( string msg,string phone,string sender,string password,string tag) 是系统提供的发送的函数接口。 ????? msg :消息内容 ????? phone: 电话号码,可以有多个号码组成,中间用半角符号; 隔开。 ????? sender: 注册用户名 ????? password: 密码 ????? tag:? 标签,可对发送的SMS进行分类,也可不用。
?
?
??? 第四步: 接收编码
?
本模块采用最简单的轮询的方式。
?
客户端软件不断调用函数查询是否有新的SMS,返回XML。同时如果填写了邮件地址,也会发邮件通知。? ????? ????????????????? 利用接口提供的GetSMS的函数接口就能获得一个数据集DataSet ,也可以选择使用GetSMSXML获得XML数据,进行分析。 ? ??????????????????????????
?
? 其它: 通过Proxy访问WebService
?
?见代码中的例子。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |