接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下。大体上说的都是有三种方法,分别是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条。如下图:
java中用中国网建提供的SMS短信平台发送短信的更多相关文章
-
短信验证登陆-中国网建提供的SMS短信平台
一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...
-
中国网建提供的SMS短信发送
一个简单的发送短信的小demo 第一步: 兄弟们,首先你们去中国网建的官网去注册一个账户:网址http://sms.webchinese.cn/reg.shtml 第二步: 注册完成之后会有免费的测试 ...
-
java 中国网建实现发送短信验证码
现在中国网建上注册一个自己的账户, 然后里面有代码案例,也有相应的下载jar包的地址 package com.direct.note; import java.io.IOException; impo ...
-
java 短信猫发送短信的方法
用java实现短信收发的功能,目前一般项目中短信群发功能的实现方法大致有下面三种: · 1. 向运行商申请短信网关,不需要额外的设备,利用运行商提供的API调用程序发送 ...
-
阿里云短信服务发送短信验证码(JAVA开发此功能)
开发此功能需注册阿里云账号,并开通短信服务(免费开通) 充值后,不会影响业务的正常使用!(因为发送验证类短信:1-10万范围的短信是0.045元/条).开发测试使用,充2块钱测试足够了 可参考阿里云官 ...
-
中国网建SMS短信接口调用(java发送和接收手机短信)
1.先注册账号,一定要填写好签名格式.不填会返回-51错误. 代码信息接口详细==>http://sms.webchinese.cn/api.shtml . 2.测试代码 package ...
-
使用阿里大于平台发送短信验证码java代码实现
待续..网站app后台还未完成,不能添加签名,短信不能正常发送. Tip: https://help.aliyun.com/document_detail/55284.html?spm=5176.sm ...
-
使用短信猫发送短信java代码
短信猫简单配置:https://www.cnblogs.com/Big-Boss/p/9699880.html 发送短信: package utils; import org.smslib.AGate ...
-
Java通过SMS短信平台实现发短信功能
在项目中使用过发短信的功能,但那个由于公司内部的限制很麻烦,今天在网上找到一个简单的,闲来无事就把它记录如下: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信 ...
随机推荐
-
通过select的value值来改变textarea内字体和大小
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- halcon运行版设置
-
android之蓝牙设备的使用01
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
-
解决Windows8前面板耳机无声的问题
Windows8已经到来不久了,相信很多朋友已经在使用,在使用时也许会遇到前面板耳机无声的问题,网上的其他办法很麻烦还不一定能解决,在这里我会给大家提供最简单的办法解决这个问题. 百度经验:jingy ...
-
iOS:UIWebView scrollView 的分页滑动问题
最近在弄一个native webview+html的项目,感觉这种尝试还是挺不错的,特被是适合内容类app.如杂志.电子书等.其实native搭的就是一个框架,主体还是在html的内容上,所以花在ht ...
-
博客发在win10.me
看到了http://www.win10.me/?page_id=58 说可以把自己的文章投给win10.me 我试试 抱着没有的心态 居然可以 我联系九幽,和他们说我写了很多博客,质量不好,他们说好 ...
-
YUV420格式解析
一般的的YUV420图像格式实际上是Y'UV,420指的是其在Y U V上面的采样率.在YUV420的格式中,首先存储每一个像素的Y'值,然后跟着存储的是每2*2方阵采样一次的U值,最后存储的是每2* ...
-
Oracle 学习总结 - 物理结构
参考了很多文章,学习自网络 数据库 = 实例(数据库启动时初始的进程和内存结构,进程会作用到对应的内存区域-数据写入器到写入内存缓冲区,日志写入器到日志缓冲区等) + 数据库(物理文件-控制文件,数据 ...
-
String 练习
package com.hanqi; import java.util.Random; public class Text { public static void main(String[] arg ...
-
DB2数据库常用命令数据库学习
DB2数据库常用命令数据库学习你可以用 get snapshot for locks on XXX 看是那个表锁了,再从相关的操作去查原因吧 db2pd -d 库名 -locks和db2pd -d 库 ...