新浪短信Web Service

今天到博客堂,看见开心就好发的这个贴子,感觉很好。

新浪发送短信的Web Service资源的该问地址为:http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl,这是一个WSDL文件格式,您可以直接在您的VS.NET环境中直接添加Web引用,把该地址输入即可。

该Web Service就只有一个方法,即string sendXml(carrier,userid,password,mobilenumber,content,msgtype)。各个参数全部为string类型,其含义基本如下(可能不正确)。

  • carrier:运营商名称,这里面可以随便输,不过似乎没有任何显示,不知道里面有没有其它奥秘。
  • userid:您在新浪无线上注册的手机ID,即http://sms.sina.com.cn
  • password:您在新浪无线上注册手机时所使用的密码。
  • mobilenumber:对方的手机号码;
  • content:发送短消息的内容;
  • msgtype:发送短消息的类型,文本短信方式:Text

示例如下:

Sina.SMSWS ws = new Sina.SMSWS();
string result = ws.sendXml("Sina",textBox1.Text,textBox2.Text,textBox3.Text,textBox4.Text,"new");

资费标准请参看新浪无线网站上的相关说明,应该是一条一角钱,不过也或者是一条两角线。由于其后台可能使用了消息队列机制,在繁忙的时候,可能会有几秒钟延迟。

 

我用了一下这个程序.觉得遗憾的是发送后的提示信息太不友好了.我分析了sendXml()方法的返回结果.是一个类似xml格式的字符串,其中提示信息放在标签<message>中,例如:<Message>无效手机号码</Message>.
我不知道字符串类是否有与xml转换的方法.但我利用截取子串方法实现如下的方法:
//截取处于开始字符串和结束字符串中间的字符串,尤其适合得到处于xml标签之间的字符串内容;
private string GetSubString(string mainString,string startString,string endString)

       int start = mainString.IndexOf(startString);
       int end = mainString.IndexOf(endString);
       if (start<0||end<0)
       {
              return null;
       }
       else
       {
              string result = mainString.Substring(start+startString.Length,end-start-startString.Length);
              return result;
       }
}
其中mainString为子串,startString为起始标签,endString为结束标签.具体调用如下:
string start = "<Message>";
string end = "</Message>";
string mainString = WebServiceName.SendXml(parameter...);
string result = GetSubString(mainString,start,end);
然后用MessageBox显示出来,发短信的用户就知道是否发送成功了.
MessageBox.Show(result+"!");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值