快速开发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☎=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:

Published At
Categories with Web编程
Tagged with
comments powered by Disqus