java创建短信平台_Java通过SMS短信平台实现发短信功能

前言

本文记录的是使用中国网建的SMS短信平台,使用前需要注册,这里只记录SMS接口的使用。

bbc7723e446b8bc8355dc1146b5f5c03.png

2、注册后直接登录。

0d9e0565d669f1d87f5a8f93a3c0e122.png

3、登录成功后,首先找到短信秘钥,调接口需要。

找到秘钥后,要先把签名的内容填入,这样在调接口后会验证签名的。网站也有API接口调用案例(短信API接口菜单)。

4d5c0474a458b89beea3c752bde886bd.png

4、POM引入

commons-codec

commons-codec

1.10

commons-logging

commons-logging

1.2

commons-httpclient

commons-httpclient

3.1

5、SendMsgUtil工具类。

本工具类使用的是GBK编码发送接口,每个注册的用户有5条免费的。

GBK编码发送接口地址:

http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容

UTF-8编码发送接口地址:

http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全密码&smsMob=手机号码&smsText=短信内容

获取短信数量接口地址(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=接口安全密码

package com.example.mybaties.utils;

import lombok.extern.slf4j.Slf4j;

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;

import java.io.IOException;

import java.util.HashMap;

/**

* @author LST

* @version 1.0

* @Description: 短信发送类

* @date 2020-1-16 14:45

*/

@Slf4j

public class SendMsgUtil {

public static HashMap getMessageStatus(String phone){

HashMap map = new HashMap();

HttpClient client = new HttpClient();

PostMethod post = new PostMethod("http://gbk.sms.webchinese.cn"); //sms平台接口

post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置编码集格式

int num = (int)((Math.random()*9+1)*100000);//6位数验证码

String code= String.valueOf(num);

NameValuePair[] data ={new NameValuePair("Uid", "用户名"),//sms平台的用户名

new NameValuePair("Key", "短信秘钥"),//短信秘钥,不是密码

new NameValuePair("smsMob",phone),//目的手机号码,多个手机号用半角逗号隔开

new NameValuePair("smsText","本次验证码为:"+code+""+",有效时间为5分钟")//短信内容,自定义

};

map.put("code", code);

post.setRequestBody(data);

try {

client.executeMethod(post);

} catch (IOException e) {

e.printStackTrace();

}

//打印状态码和响应头信息

int statusCode = post.getStatusCode();

log.info("statusCode:{}",statusCode);

Header[] headers = post.getResponseHeaders();

for(Header h : headers) {

log.info(h.toString());

}

String result = null;

try {

result = new String(post.getResponseBodyAsString().getBytes("gbk"));

} catch (IOException e) {

e.printStackTrace();

}

log.info(result); //打印返回的消息状态

map.put("result", result);

post.releaseConnection();

return map;

}

public static void main(String[] args) {

getMessageStatus("手机号码");

}

}

下图是发送到我手机上的短信内容

473b3210b93e5773069cded85490c9d6.png

6、返回code

短信发送后返回值

说 明

-1

没有该用户账户

-2

密钥不正确(不是用户密码)

-3

短信数量不足

-11

该用户被禁用

-14

短信内容出现非法字符

-4

手机号格式不正确

-41

手机号码为空

-42

短信内容为空

大于0

短信发送数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值