java中用中国网建提供的SMS短信平台发送短信

简介: <p>接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下。大体上说的都是有三种方法,分别是<span style="font-family:Arial; font-size:18px; line-height:26px">sina提供的webservice接口、短信mao和中国网建提供的SMS短信平台。</span></p> <p><span style="fon

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


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


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


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


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

参考文章地址:http://blog.csdn.net/csh624366188/article/details/7183457

这段代码如下:

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后的内容换成了自己登陆中国网建( http://sms.webchinese.cn/Login.shtml)的登陆密码,但是结果一运行程序,返回值是-2,也没有收到短信。


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


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



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


目录
相关文章
|
1月前
|
存储 Java 数据库
Java代码居然能搭建二手交易平台
Java代码居然能搭建二手交易平台
18 0
|
1月前
|
运维 监控 Java
java乡镇卫生院、二甲医院云HIS运维平台源码
运营管理是综合管理系统的核心部分,由运营商和医疗机构管理人员使用,运营管理包括:机构管理、药品目录管理、用户管理、角色管理、字典管理、模板管理、参数设置、消息管理、售后服务、运营配置、外部系统11个子模块,实现机构、用户、角色管理、药品目录管理以及通用的字典管理;可以根据业务需要为各医疗机构定制病历模板和报表模板;可以对医疗机构收费外接设备进行参数设置,对业务进行配置;可以管理消息及售后信息等。
39 3
|
2月前
|
人工智能 监控 安全
java基于微服务架构的智慧工地监管平台源码带APP
劳务管理: 工种管理、分包商管理、信息采集、班组管理、花名册、零工采集、 现场统计、考勤管理、考勤明细、工资管理、零工签证
287 4
|
3月前
|
Java 数据库 数据安全/隐私保护
基于Java的公务员考试资料共享平台的设计与实现
基于Java的公务员考试资料共享平台的设计与实现
49 0
|
4天前
|
JavaScript Java 测试技术
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
21 0
|
4天前
|
JavaScript Java 测试技术
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
15 0
|
4天前
|
JavaScript Java 测试技术
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
16 1
|
4天前
|
JavaScript Java 测试技术
基于Java的直播电商交流平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的直播电商交流平台的设计与实现(源码+lw+部署文档+讲解等)
13 0
|
5天前
|
JavaScript Java 测试技术
基于Java的课程在线教学平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的课程在线教学平台的设计与实现(源码+lw+部署文档+讲解等)
25 0
|
6天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
26 6