新浪短信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”);

 

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

打赏作者

“新浪短信Web Service”的61个回复

  1. 这个酷

    我打算给我的ppc写一个。最好能hook住ppc内带的地址本的context menu。或者可以把地址本自动import过来也可以。

    问个问题: 费用是收在手机号码上么?

    群发,我认为可以通过一条条发来实现。

  2. To 萧远山:群发我是一条一条的来的,不过似乎群发越多,延迟越厉害,我不知道是不是支持分隔符,时间紧,没有测试。
    To mvm:费用是收在手机上的:)

  3. To 乐色.Net:具体情况我就不知道了,不过这个Web Service应该在Outlook XP推出时就推出了,Office XP中文版推出时,曾经推出一个插件,就是调用的这个Web Service:)

  4. 就目前来说,不收取,但我无法控制新浪的商务决策,所以长期来说,很难说的。

  5. 我在前年使用过珠海移动做过这个,不过珠海移动没有提供webService这个酷的咚咚,只有一个jsp页面。:P

  6. 3/23/2004 2:01 PM by 开心就好
    BTW:这个接口不是免费的。

    一条SINA当然可以长期“免费”提供次SERVICE,只是发消息要收费。

  7. 我在公司里就做了一个web service接口来发短信。应为我们公司是sp,哈哈 所以就提供短信服务

  8. 请问各位老大,如何接受回复的短信啊?我说的不是用手机,是用程序如何接收?

  9. 我到PDA Fans上看了源程序,发现不太完善.发了个贴子,顺便在这里也写出来.

    其实那个软件可以增加很多功能,比如增加登陆权限限制,通过数据库读取用户信息等.

    虽然是小程序,但是我觉得软件总还是要体贴用户.例如这个反馈发送结果的功能,是必须要有的.

    我用了一下这个程序.觉得遗憾的是发送后的提示信息太不友好了.我分析了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+"!");//加一个感叹号,漂亮一点:)

  10. Sina上面好像没有相关说明,呵呵。我找不到
    这个Web Service是不是测试用,或内部使用的啊。

  11. 这个WebServer的设计缺陷:
    1、不支持定时发送。
    2、从此处大概可了解新浪提供的这个服务后的短信处理平台应该是只实现CMPP2.1或CMPP3.0,不可能支持彩信功能。
    3、根据CMPP协议可以知道,设置发送短消息的类型可以支持多种格式,比如闪电短信(也称为流星短信)、普通短信、闪烁短信等。对于非从事短信开发的人员来说,应该提供相应的参数说明。
    4、短信每条的长度不超过140(8位编码)字符,如果是中英文则不能大于70个字,因此对于超长短信的处理方式。
    5、没有可靠安全性验证,如果用户在新浪上注册的手机ID及PW被非法取得,那该用户多无辜,再者对于此类情况,移动公司肯定会给予退款处理,吃亏的还是新浪。

  12. 请问大家怎样做 接受短信 部分呢,想做一个收发短信的东西,
    是不是要租用移动接口??

  13. 请问各位大侠!还有没有更多提供webserver的网站了,我的程序上要用到发短信的功能.是程序自动完成发送.

  14. 程序发送短信时有时出现错误,提示你所发送的短信中有非法字符,可是,我的短信内容
    本日毛利:16098.27销售额:205602许4527.27萍2179.4王1210.82方296.25忠1130.03军1063.28春1558.41蔡829.52杜2782.91黄484.00
    怎么可能有非法字符?

    有时出
    Required white space was missing.

    Line:1
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML.

    什么意思? white space?

  15. 太好了,这段时间大家一直在找这方面的资料呢,因为新浪的失效了。用我宣传一下吗?:)

  16. 高手告诉我一下。我的手机收到一个好友发来的短信,内容是“请发PW到8888,新浪会给你个密码。再将密码告诉我,注册是免费的。“
    请问这个是什么意思啊?我感觉我要被骗,呵呵,请高手指点一下。

  17. Pingback: 汪斌
  18. 这个地址现在还能用吗!
    如果谁知道请说一下!谢谢了
    您们谁知道还有哪些短信Web Service

  19. 还有其他类似的web service吗?我现在这个项目也要用到这个短信发送功能,如果有的话,就不用去买硬件了,
    先谢了!

  20. 我按照您所说的方法,调用新浪的webservice,出显错误,说基础连接关闭,为什么???

评论已关闭。