博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中用中国网建提供的SMS短信平台发送短信
阅读量:6480 次
发布时间:2019-06-23

本文共 2070 字,大约阅读时间需要 6 分钟。

接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下。大体上说的都是有三种方法,分别是sina提供的webservice接口、短信mao和中国网建提供的SMS短信平台。

这三种方式,因为第一种和第三种都经过了别的平台转发,因此具有一定的安全隐患,第二种短信mao的方式相对可能要安全一些。

但是短信mao需要购买硬件设备,因此我便只好参考网上的文章先实现了用sms平台发送短信的功能。

这个功能说起来实际上很简单,java代码也很少,只是我在实现的过程中参照网上文章的代码和注释并没有马上成功发送短信。

好在在几经周折后终于成功,于是我发现原文的注释实际上和真正的操作不太一样,我便记录了下来,以便更多人参考。

参考文章地址:

这段代码如下:

package com.text;    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://sms.webchinese.cn/web_api/");          post.addRequestHeader("Content-Type",                  "application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码          NameValuePair[] data = { new NameValuePair("Uid", "cshxxxxxxxx"), // 注册的用户名                  new NameValuePair("Key", "53295058d1c46710666a"), // 注册成功后,登录网站使用的密钥                  new NameValuePair("smsMob", "187xxxxxxx"), // 手机号码                  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();  }
需要说明的是“注册成功后,登录网站使用的密钥”这里,我按照文中注释把Uid后的内容改成自己注册的用户名,把smsMob后的内容换成了自己的手机号,然后也把key后的内容换成了自己登陆中国网建( )的登陆密码,但是结果一运行程序,返回值是-2,也没有收到短信。

根据文中的说明可以知道-2是密码错误,于是我又试了一下登陆,密码并没有错误。没办法,我只好在中国网建登陆后的页面一一查看,后来才发现原来有一个专门发送短信接口的密钥,把key后的内容换成这个之后再一运行程序,返回值变成了-51,还是不成功,不过证明密码已经正确了。

-51说明短信签名有问题,于是我又跑到中国网建一看,原来签名那里我没有填,如下图填好签名,再次运行程序,返回值变成了1,代表成功发送一条数据。

而得到返回值1之后,我手机也成功收到了短信,网站注册时送的5条免费短信也变成了剩余4条。如下图:

你可能感兴趣的文章
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>
linux中yum源安装dhcp,24.Linux系统下动态网络源部署方法(dhcpd)
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>
兼容几乎所有浏览器的透明背景效果
查看>>
Linux VNC server的安装及简单配置使用
查看>>
阿里宣布开源Weex ,亿级应用匠心打造跨平台移动开发工具
查看>>
Android项目——实现时间线程源码
查看>>
招商银行信用卡重要通知:消费提醒服务调整,300元以下消费不再逐笔发送短信...
查看>>
C#_delegate - 调用列表
查看>>
[转]Windows的批处理脚本
查看>>
多维数组元素的地址
查看>>
数据库运维体系_SZMSD
查看>>
js的AJAX请求有关知识总结
查看>>
三分 POJ 2420 A Star not a Tree?
查看>>
修改OBS为仅直播音频
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
阻塞非阻塞异步同步 io的关系
查看>>