之前看到曹胜欢先生写的《利用java实现的一个发送手机短信的小例子》的博客,成功实现了java工程发送手机短信的功能。但是在实现过程中,碰到一些小麻烦,再看到曹先生微博下面的评论,发现不少朋友遇到相似的问题。因而想说的更细一点,与同为小白的朋友们分享。
红字部分可回头再看:
这里先说明几点小白们易犯的错误:(1) 在"签名"处填写正式的单位名称(可以是不存在的单位,但是签名一定要正式,否者难以通过审核)(参看以下图片)。(2) 工程中填写的"接口安全秘钥"不是登录密码,而是“修改短信秘钥”页面的"短信秘钥"(参看以下图片)。(3)短信内容切不可乱填,否者审核无法通过,有朋友表示,短信发送成功,但是却两个小时未收到,其实就是这个原因。比如本人第一次发送的短信内容为“老王好棒棒”,发送成功,但一直无法收到短信。后来改为正式的,如“尊敬的客户,您的体检报告已生成,请及时打印”。就发送成功了(参看以下图片)。(4)正常情况下,一到三分钟之内,就会收到短信。有问题,可以直接拨打中国网建客服电话:400-699-1455直接询问,但是不能暴露你是在做着玩或者学技术,要让对方觉得你是在开发一款单位的软件。
JAVA发送手机短信,目前已知的方法有3中:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备。(3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/default.shtml)
本文使用第(3)种,即用中国网建提供的SMS短信平台的方法,这个短信平台基于java提供个专门的接口,平台上就有代码(代码的地址:http://sms.webchinese.cn/api.shtml或登录网站点击"API接口")。
注册成功后,点击左边的“短信单发群发”或者【发送短信】:
进入短信发送页面:
在"签名"处填写正式的单位名称(可以是不存在的单位,但是签名一定要正式,否者难以通过审核)。可以短信内容处填写将要发送的短信内容,然后点击“立刻发送短信”。当然,我们的目的是通过java工程来发送,因此这里可以不写,在工程中写。
再接着,新建一个java工程或web工程都可以。
然后将以下代码复制到工程中(请直接到网页上复制代码,代码地址http://sms.webchinese.cn/default.shtml):
这里要注意两点:(1)"接口安全秘钥"不是登录密码,而是“修改短信秘钥”页面的“短信秘钥”:
(2)短信内容切不可乱填,否者审核无法通过,有朋友表示,短信发送成功,但是却两个小时未收到,其实就是这个原因。比如本人第一次发送的短信内容为“老王好棒棒”,就一直无法发送成功。后来改为正式的,如“尊敬的客户,您的体检报告已生成,请及时打印”。就发送成功了。
然后点击运行工程,控制台打印出“1”,就是信息发送成功了。
正常情况下,一到三分钟之内,就会收到短信。有问题,可以直接拨打中国网建客服电话:400-699-1455直接询问,但是不能暴露你是在做着玩或者学技术,要让对方觉得你是在测试一款单位的软件。
运行本程序首先的代入三个jar包,jar下载地址也在这个网页上,这里附上:
commons-codec-1.4(http://sms.webchinese.cn/down/commons-logging-1.1.1.jar)
commons-httpclient-3.1(http://sms.webchinese.cn/down/commons-httpclient-3.1.jar)
commons-logging-1.1.1(http://sms.webchinese.cn/down/commons-codec-1.4.jar)
这里有四个编码发送接口地址,任意一个都可以:
GBK编码发送接口地址:
http://gbk.api.smschinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
UTF-8编码发送接口地址:
http://utf8.api.smschinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
获取短信数量接口地址(UTF8):
http://www.smschinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用户名&Key=接口安全秘钥
获取短信数量接口地址(GBK):
http://www.smschinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用户名&Key=接口安全秘钥
附: