云短信注册地址 这里使用json模板
package com.devart.woodpecker.hsjg.salemanage.shortmessage;
import java.util.Date;
import lombok.Data;
@Data
public class SSmsRecord {
private Long senderId;
private String userName;
private Date sendTime;
private String sendContent;
private String mobiles;
private Integer receiverCount;
private String receiverIds;
private String responseMessage;
}
这里是正文
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Date;
import lombok.Data;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@Data
public class sendMessageUnit {
/** 用户名常量 /
public static final String UID = “到云短信注册的用户名”;
/* 用户密码常量 /
public static final String PWD = “云短信提供的密码”;
/* 模板id /
public static final Integer TEMPLATE = 501653;//这个id需要到云短信申请
/* 签名 send */
public static final String Ac = “send”;//这个签名是写死的 不用管
/** 用户名 */
private String uid;
/** 用户密码 */
private String pwd;
/** 群发号码组 */
private String mobile;
/** 短信内容 */
private String content;
/** 短信最大长度 */
private Integer length;
/** 模板id */
private Integer template;
/** 签名 */
private String ac;
/**
*
* @param mobile 电话号码,多个用","分开
* @param content 短信内容
*/
public sendMessageUnit(String mobile, String content) {
this.uid = UID;
this.template = TEMPLATE;
this.ac = Ac;
this.pwd = PWD;
this.mobile = mobile;
this.length = 70;
this.content = content;
}
/**
* 将返回状态编码转化为描述结果
*
* @param logger
* 打印信息
* @param result
* 状态编码
* @return 描述结果
*/
private static String getResponse(String result) {
Log logger = LogFactory.getLog(sendMessageUnit.class);
if (result.equals("100")) {
logger.info("发送成功");
return "发送成功";
}
if (result.equals("101")) {
logger.info("验证失败");
return "验证失败";
}
if (result.equals("102")) {
logger.info("短信不足");
return "短信不足";
}
if (result.equals("103")) {
logger.info("操作失败");
return "操作失败";
}
if (result.equals("104")) {
logger.info("非法字符");
return "非法字符";
}
if (result.equals("105")) {
logger.info("内容过多");
return "内容过多";
}
if (result.equals("106")) {
logger.info("号码过多");
return "号码过多";
}
if (result.equals("108")) {
logger.info("号码内容空");
return "号码内容空";
}
if (result.equals("109")) {
logger.info("账号冻结");
return "账号冻结";
}
if (result.equals("112")) {
logger.info("号码不正确");
return "号码不正确";
}
if (result.equals("117")) {
logger.info("绑定IP不正确");
return "绑定IP不正确";
}
if (result.equals("161")) {
logger.info("未添加短信模板");
return "未添加短信模板";
}
if (result.equals("162")) {
logger.info("模板格式不正确");
return "模板格式不正确";
}
if (result.equals("163")) {
logger.info("模板ID不正确");
return "模板ID不正确";
}
if (result.equals("164")) {
logger.info("全文模板不匹配");
return "全文模板不匹配";
}
return result;
}
/**
* http发送请求
* @return
*/
public SSmsRecord sendMessage(){
Log logger = LogFactory.getLog(sendMessageUnit.class);
String result = "";
// 创建StringBuffer对象用来操作字符串
StringBuffer sb = new StringBuffer("http://api.yunduanxin.com/sms/?");
sb.append("ac=").append(this.ac);
// 向StringBuffer追加用户名
sb.append("&uid=").append(this.uid);
// 向StringBuffer追加密码(密码采用MD5 32位 小写)
sb.append("&pwd=").append(this.pwd);
//
sb.append("&template=").append(this.template);
// 向StringBuffer追加手机号码
sb.append("&mobile=").append(this.mobile);
System.out.println("请求路径"+sb.toString()+"&content="+this.content);
// 向StringBuffer追加消息内容转URL标准码
sb.append("&content=").append(URLEncoder.encode(this.content));
sb.append("&encode=utf8");
try {
// 创建url对象
URL url = new URL(sb.toString());
// 打开url连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置url请求方式 ‘get’ 或者 ‘post’
connection.setRequestMethod("POST");
// 发送
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
// 返回发送结果
result = in.readLine().toString();
} catch (MalformedURLException e) {
e.printStackTrace();
logger.info("编码转换异常");
} catch (ProtocolException e) {
e.printStackTrace();
logger.info("协议使用异常");
} catch (IOException e) {
e.printStackTrace();
logger.info("返回结果异常");
} finally {
//这个对象是你自己新建的,变量都写好就可以了
SSmsRecord smsRecord = new SSmsRecord();
smsRecord.setUserName(this.uid);
smsRecord.setSendTime(new Date());
smsRecord.setSendContent(this.content);
smsRecord.setMobiles(this.mobile);
smsRecord.setReceiverCount(this.mobile.split(",").length
* (this.content.length() / 70 + 1));
smsRecord.setResponseMessage(getResponse(result));
return smsRecord;
}
}
}
下面就是调用了
//对象转为json
String jsonValue = mapper.writeValueAsString(shortMessageEntity);
sendMessageUnit sendMessageUnit = new sendMessageUnit("电话号码,多个号码使用“,”分割就好了", jsonValue);
SSmsRecord smsRecord = sendMessageUnit.sendMessage();
作者:o马蹄o
来源:CSDN
原文:https://blog.csdn.net/qq_36491545/article/details/83187972
版权声明:本文为博主原创文章,转载请附上博文链接!