文档章节

SMS短信通API下行接口参数

清风伴月
 清风伴月
发布于 2017/07/21 15:26
字数 1659
阅读 60
收藏 0

JAVA发送手机短信

方法:

(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册.  https://my.oschina.net/lmoon/blog/1477175                

(2)使用短信mao的方式进行短信的发送,这种方式应该是比较常用,前提是需要购买硬件设备.

(3)使用中国网建提供的SMS短信平台.

一、使用中国网建提供的API给手机发送短信

为了使用中国网建给对方手机发送短信,需要以下几步操作:

1.登录中国网建,地址为:http://sms.webchinese.cn/

2.注册,注册后你就会有用户名和密码,密码会自动发到你的手机里

3.获取网管接口密码,至于如何获得网关接口密码,我是这样偶尔获得的(网管接口密码并不是注册时发送到手机里的登录密码)。在该网站里尝试发一条短信,发短信时会有相应的提示,在发送的过程中会出现你的网关接口密码。

注意:你要保存好你的网关接口秘密,因为每次当你使用代码发送信息时都需要这个网关接口密码。

以下代码及所使用的jar可以从http://sms.webchinese.cn/直接获得。

GBK编码发送接口地址
http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
UTF-8编码发送接口地址:
http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
获取短信数量接口地址(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 短信内容,最多支持400个字,普通短信70个字/条,长短信64个字/条计费

多个手机号请用半角,隔开
如:13888888886,13888888887,1388888888 一次最多对100个手机发送
短信内容支持长短信,最多400字,普通短信70个字/条含签名,长短信64字/条计费

短信发送后返回值 说 明
-1 没有该用户账户
-2 接口密钥不正确 [查看密钥]
不是账户登陆密码
-21 MD5接口密钥加密不正确
-3 短信数量不足
-11 该用户被禁用
-14 短信内容出现非法字符
-4 手机号格式不正确
-41 手机号码为空
-42 短信内容为空
-51 短信签名格式不正确
接口签名格式为:【签名内容】
-6 IP限制
大于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","验证码:8888")};

        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();
    }

}

jar包下载
commons-logging-1.1.1.jar
commons-httpclient-3.1.jar
commons-codec-1.4.jar
注意:不过目前commons-httpclient-3.1.jar已经不存在,其所实现的功能,已经被加入到httpcomponents-client的Apache项目中。

网管选择:默认网关、106网管(带签名)和广告网管。

使用事项:

(1)给陌生人发广告短信,请您切换到广告网关发送,如发现用106网关发送立即封号;
(2)106网关不允许给陌生人发广告,否则封号,允许给老客户、会员或员工发送信息;
(3)106行业网关独立请联系客服,量大开通。
(4)本站全部网关对联通和电信用户手机接收到的短信全部采用106网关发送,即发即到。
(5)广告网关发移动手机采用106网关模拟手机号码,为空号,部分时段有延时到达率99%;

演示程序下载
java_dome.rar

说明:如果返回值是200,应该是整段程序代码没有执行完整,只获取到client.executeMethod(post)HTTP状态码的消息;接口是提交成功,没有执行下半部的返回消息代码。
client.executeMethod(post);HTTP状态码参考:http://baike.baidu.com/view/1790469.htm

 

二、使用短信mao的方式进行短信的发送

此方式前提是需要购买硬件设备

  	import org.smslib.IOutboundMessageNotification;
	import org.smslib.Library;
	import org.smslib.OutboundMessage;
	import org.smslib.Service;
	import org.smslib.Message.MessageEncodings;
	import org.smslib.modem.SerialModemGateway; 

	public class SendMessage {
	    public void doIt() throws Exception {
	        Service srv;
	        OutboundMessage msg;
	        OutboundNotification outboundNotification = new OutboundNotification();
	        System.out.println("Example: Send message from a serial gsm modem.");
	        System.out.println(Library.getLibraryDescription());
	        System.out.println("Version: " + Library.getLibraryVersion());
	        srv = new Service();

	        //SerialModemGateway(com名称,串口号,破特率,连接设备名称,设备型号,sms pin)
	        SerialModemGateway gateway = new SerialModemGateway("modem.com5", "COM5", 
                9600, "wavecom", "1234");

	        gateway.setInbound(true); // 设置网关可以写入信息
	        gateway.setOutbound(true); // 设置网关可以读取信息
	        gateway.setSimPin("1234"); // 设置SIM PIN

	        gateway.setOutboundNotification(outboundNotification); // 设置入信回调实现
	        srv.addGateway(gateway);// 发信服务中添加设定的网关       
	        srv.startService(); // 初始化所有的网关

	        System.out.println("Modem Information:");
	        System.out.println(" Manufacturer: " + gateway.getManufacturer());
	        System.out.println(" Model: " + gateway.getModel());
	        System.out.println(" Serial No: " + gateway.getSerialNo());
	        System.out.println(" SIM IMSI: " + gateway.getImsi());
	        System.out.println(" Signal Level: " + gateway.getSignalLevel() + "%");
	        System.out.println(" Battery Level: " + gateway.getBatteryLevel() + "%");
	        System.out.println();

	        // Send a message synchronously.
	        // 手机号码,和短信内容
	        msg = new OutboundMessage("15972900071", "今天星期三,2013-07-31,特别的日子!");
	        msg.setEncoding(MessageEncodings.ENCUCS2);// 这句话是发中文短信必须的       
	        srv.sendMessage(msg); //执行发送

	        System.out.println(msg);
	        System.out.println("Now Sleeping - Hit <enter> to terminate.");
	        System.in.read();
	        srv.stopService();
	    }
	 
	    public class OutboundNotification implements IOutboundMessageNotification {
	        public void process(String gatewayId, OutboundMessage msg) {
	            System.out.println("Outbound handler called from Gateway: " + gatewayId);
	            System.out.println(msg);
	        }
	    }
	 
	    public static void main(String args[]) {
	        SendMessage app = new SendMessage();
	        try {
	            app.doIt();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
	}

 

© 著作权归作者所有

清风伴月
粉丝 1
博文 129
码字总数 255659
作品 0
海淀
程序员
私信 提问
SMS短信通API——(1)Java应用发送手机短信

1. SMS短信通 SMS短信通是中国网建提供的一个发送短信的应用,一般用于企业级用户。本博文介绍如何编写最简单的Hello World级Java程序,实现向指定手机号发送短信的功能。由于SMS短信通是一款...

晨曦之光
2012/04/24
1K
1
短信发送Api

提供商:中国网建 SMS网信通 短信Api接口地址: http://sms.webchinese.cn/api.shtml 注意:这里会提供简单的调用例子,而且还有几次免费短信,可以供我们开发者测试 1、短信接口 package co...

CurtainRight
2016/01/28
213
0
Java通过SMS短信平台实现发短信功能

本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了。在使用前需要注册,注册地址为http://sms.webchinese.cn/...

zh151832
2015/12/01
501
0
PhpSms 稳定可靠的php短信发送库

可能是目前最聪明、优雅的PHP短信发送库了。从此不再为各种原因造成的个别短信发送失败而烦忧! phpsms的任务均衡调度功能由toplan/task-balancer提供。 转载GitHub:https://github.com/to...

请天点
2016/12/22
862
0
信信客短信发送接口文档

信信客接入指南 信信客短信通道API接口是面向有一定技术开发能力的企业或者个人用户而单独研发的短信通道通讯协议。本接口采用了通用的HTTP形式,支持get或者post方式接入,可以支持各种操作...

信信客
2016/05/23
55
0

没有更多内容

加载失败,请刷新页面

加载更多

关于运维,该怎么决定它的方向,这个似工作又似兴趣的存在

我之前主要从事网络、桌面、机房管理等相关工作,这些工作使我迷惘,这应该是大多数运维人都经历过的过程; 18年国庆,我从国内前三的消费金融公司裸辞,下海创业,就是想要摆脱这样的困境。...

网络小虾米
24分钟前
5
0
Java Timer的用法

Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("11232"); } }, 200000 , 1000); public void schedule(TimerTask task, long delay......

林词
28分钟前
5
0
使用js动态加载外部js文件以及动态创建script脚本

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。 动态加载外的外...

Bing309
35分钟前
3
0
从零开始入门 K8s | Kubernetes 网络概念及策略控制

作者 | 阿里巴巴高级技术专家 叶磊 一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特...

阿里巴巴云原生
39分钟前
3
0
天气获取

本文转载于:专业的前端网站➨天气获取 $.get("http://wthrcdn.etouch.cn/WeatherApi", { citykey: cityCode }, function (d) { //创建文档对象 var parser = new ......

前端老手
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部