编程实现短信发送三种方式

方案一: 利用sina webservice发送短信

通过编程实现短信息的发送是一件比较繁琐的事情,目前,解决方法是通过计算机和手机的连线,使用手机编程语言编写相关的短信程序来实硬件设施,并且必须具备手机编程的相关知识。本实例通过Web Service技术中接口实现远程访问现有的短信发送服务器,并通过调用服务器的方法来发送短信。

Web Service的服务器地址是         http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl。这个Web Servic仅提供了一个发送短信的方法“sendXml”。此方法的语法格式如下:

string sendXml (carrier , userid , password , mobilenumber , content , msgtype )
endXml方法中的6个参数均为string类型,并且sendXml方法的返回值也是string类型。
以下是sendXml方法中的6个参数的具体说明如下:
· carrier:运营商名称,使用时此参数并没有什么具体要求,即这里面可以随便输入,输入的字符串也不会在对方手机中有任何显示。
· userid:在新浪网上注册的手机号。
· password:在新浪网成功注册手机后,新浪网反馈回来的密码。
· mobilenumber:要发送短信到对方的手机号码。
· content:所要发送短消息的内容。
· msgtype:发送短消息的类型。
调用此Web Service只需在VS2005.NET中直接“添加Web引用”,把该地址输入即可。
注意:使用新浪服务发送手机短信时,需要在新浪网站上进行手机注册,注册网址为http://sms.sina.com.cn/。
2.补充说明
在使用Web Service发送手机短信时,必须要保证本地计算机与互联网相连,这样才能调用新浪提供的Web Service发送短信。如果本地计算机没有上网,则运行代码会出现错误。

方案二: 利用短信猫硬件设备进行发送

所谓短信猫,其实是一种用来收发短信的设备,他和我们用的手机一样,需要手机SIM卡的支持,在需要收发短信的时候,在短信猫里面插入一张我们平时用的手机卡,插上电源,通过(USB或者串口、网口)数据线和电脑相连,在电脑的应用管理软件中就可以实现短信收发的功能。

方案三:利用中国网建SMS短信平台进行发送

http://sms.webchinese.cn/default.shtml

MS短信通API下行接口参数 短信上行回复API
GBK编码发送接口地址:
http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容 
UTF-8编码发送接口地址:
http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容
获取短信数量接口地址(UTF8):
http://sms.webchinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用户名&Key=接口安全密码
获取短信数量接口地址(GBK):
http://sms.webchinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用户名&Key=接口安全密码


提示:HTTP调用URL接口时, 参数值必须URL编码后再调用


参数变量 说明
Gbk编码Url http://gbk.sms.webchinese.cn/
Utf-8编码Url http://utf8.sms.webchinese.cn/
Uid 本站用户名(如您无本站用户名请先注册)[免费注册]
Key 注册时填写的接口秘钥(可到用户平台修改接口秘钥)[立刻修改]
如需要加密参数,请把Key变量名改成KeyMD5,
KeyMD5=接口秘钥32位MD5加密,大写。
smsMob 目的手机号码(多个手机号请用半角逗号隔开)
smsText 短信内容,最多支持300个字,普通短信70个字/条,长短信64个字/条计费
多个手机号请用半角,隔开
如:13888888886,13888888887,1388888888 一次最多对100个手机发送
短信内容支持长短信,最多300个字,普通短信66个字/条,长短信64个字/条计费


短信发送后返回值 说 明
-1 没有该用户账户
-2 接口密钥不正确 [查看密钥]
不是账户登陆密码
-21 MD5接口密钥加密不正确
-3 短信数量不足
-11 该用户被禁用
-14 短信内容出现非法字符
-4 手机号格式不正确
-41 手机号码为空
-42 短信内容为空
-51 短信签名格式不正确
接口签名格式为:【签名内容】
大于0 短信发送数量
注:调用API接口,请登录平台,申请106网关发送,即发即到!
  发送测试短信请勿输入:短信测试等词语,请直接提交您要发送的短信内容;
  接口发送短信时请在内容后加签名:【XX公司或XX网名称】,否者会被屏蔽。
  短信签名可在用户平台平台上设置,也可以在短信内容后,直接加入。

java 程序示例:

import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

public class SendMsg_webchinese {

public static void main(String[] args)throws Exception
{

HttpClient client = new HttpClient();
PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn"); 
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码
NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全密码"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","短信内容")};
post.setRequestBody(data);

client.executeMethod(post);
Header[] headers = post.getResponseHeaders();
int statusCode = post.getStatusCode();
System.out.println("statusCode:"+statusCode);
for(Header h : headers)
{
System.out.println(h.toString());
}
String result = new String(post.getResponseBodyAsString().getBytes("gbk")); 
System.out.println(result);


post.releaseConnection();

}

}

经本人测试,本方法发送短信延迟很大,而且存在发送丢失的情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值