短信宝接入发送短信实测 Java
1丶注册短信宝
2 代码分为授权跟参数实体
授权实体
@Data public class SmsBaoAuthorization {//http://api.smsbao.com/sms private String url;//在短信宝注册的用户名private String username;//在短信宝注册的密码 private String password; }
参数实体
@Data public class SmsBaoMsgData {private String phone;//签名放入内容中 也可单独作为参数拼接 例如:【万千购】您的验证码是1234private String content;}
调用接口
@Slf4j @Component public class SmsBaoSendMsgHandle {public String sendMsgOne(SmsBaoAuthorization smsBaoAuthorization, SmsBaoMsgData smsBaoMsgData) {String state = SMSBaoUtil.send(smsBaoAuthorization, smsBaoMsgData);return state;}public void sendMsgBatch(SmsBaoAuthorization smsBaoAuthorization, List<SmsBaoMsgData> smsBaoMsgDatas) {log.info("发短信");for (SmsBaoMsgData smsBaoMsgData : smsBaoMsgDatas) {String state = SMSBaoUtil.send(smsBaoAuthorization, smsBaoMsgData);}}}
短信宝发送工具类
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class SMSBaoUtil {public static String url;public static String username;public static String password;public static void setUrl(String url) {SMSBaoUtil.url = url;}public static void setUsername(String username) {SMSBaoUtil.username = username;}public static void setPassword(String password) {SMSBaoUtil.password = password;}public static String send(SmsBaoAuthorization smsBaoAuthorization, SmsBaoMsgData smsBaoMsgData) {StringBuffer httpArg = new StringBuffer();httpArg.append("u=").append(smsBaoAuthorization.getUsername()).append("&");httpArg.append("p=").append(md5(smsBaoAuthorization.getPassword())).append("&");httpArg.append("m=").append(smsBaoMsgData.getPhone()).append("&");httpArg.append("c=").append(encodeUrlString(smsBaoMsgData.getContent(), "UTF-8"));return request(smsBaoAuthorization.getUrl(), httpArg.toString());}public static String send(String phone, String content) {StringBuffer httpArg = new StringBuffer();httpArg.append("u=").append(username).append("&");httpArg.append("p=").append(md5(password)).append("&");httpArg.append("m=").append(phone).append("&");httpArg.append("c=").append(encodeUrlString(content, "UTF-8"));String result = request(url, httpArg.toString());return result;}public static String send(String url, String username, String password, String phone, String content) {StringBuffer httpArg = new StringBuffer();httpArg.append("u=").append(username).append("&");httpArg.append("p=").append(md5(password)).append("&");httpArg.append("m=").append(phone).append("&");httpArg.append("c=").append(encodeUrlString(content, "UTF-8"));String result = request(url, httpArg.toString());return result;}public static String md5(String plainText) {StringBuffer buf = null;try {MessageDigest md = MessageDigest.getInstance("MD5");md.update(plainText.getBytes());byte b[] = md.digest();int i;buf = new StringBuffer("");for (int offset = 0; offset < b.length; offset++) {i = b[offset];if (i < 0)i += 256;if (i < 16)buf.append("0");buf.append(Integer.toHexString(i));}} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return buf.toString();}public static String encodeUrlString(String str, String charset) {String strret = null;if (str == null)return str;try {strret = java.net.URLEncoder.encode(str, charset);} catch (Exception e) {e.printStackTrace();return null;}return strret;}public static String request(String httpUrl, String httpArg) {BufferedReader reader = null;String result = null;StringBuffer sbf = new StringBuffer();httpUrl = httpUrl + "?" + httpArg;try {URL url = new URL(httpUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.connect();InputStream is = connection.getInputStream();reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));String strRead = reader.readLine();if (strRead != null) {sbf.append(strRead);while ((strRead = reader.readLine()) != null) {sbf.append("\n");sbf.append(strRead);}}reader.close();result = sbf.toString();} catch (Exception e) {e.printStackTrace();}return result;} }
在使用类里面调用
1注入调用类
@Autowired private SmsBaoSendMsgHandle smsBaoSendMsgHandle;
2装配授权参数
SmsBaoAuthorization smsBaoAuthorization = new SmsBaoAuthorization();
3装配消息参数
SmsBaoMsgData smsBaoMsgData = new SmsBaoMsgData();
4 发送
sendResult=smsBaoSendMsgHandle.sendMsgOne(smsBaoAuthorization,smsBaoMsgData);
效果示例
短信宝接入发送短信实测 Java相关推荐
- python调用短信宝API发送短信(附python代码 易理解)
原版API如下:接口说明_马上使用更好的短信服务-短信宝官网 (smsbao.com) 直接上代码 复制过去就行 import requestscontent = str("[短信宝]您的验 ...
- java调用短信接口实现发送短信
java调用短信接口实现发送短信 1.下载接口文件 2.打开java文件夹 2.1获取jar包依赖 2.2获取代码模板 3.创建项目 3.1打开eclipse软件,创建一个动态的web项目 3.2导入 ...
- 使用华为短信包,发送短信Result=61问题解决
使用华为短信包,发送短信出现了Result=61的返回. 网上说是有效时间失效 注释: /** * 创建一个发送短信消息,传入消息的各字段的值,并对各参数值进行判断,不符合要求则抛出异常 * 按要求把 ...
- 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)
获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...
- TP5调用阿里云短信接口实现发送短信功能
TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...
- 普歌-腾讯云短信+使用node发送短信(3种方法API、SDK)、封装工具、搭建web服务、写接口、调用接口发送短信、时效性判断、验证验证码的正确性(下)
普歌-结合腾讯云短信服务+node搭建一个简单的发送短信web小项目 涉及技术: 腾讯云服务 后端服务:node+express 前端搭建:html+js 前言:本来这篇博客应该很早就发了,中间有一些 ...
- N7100/GALAXY Note2 解决短信发件人实际发送短信时间
三星 N7100/GALAXY Note2 解决短信发件人实际发送短信时间... 解决短信发件人实际发送短信时间显示为当前时间的bug 如果别人给你发了一条短信,而你手机当前是关机状态,那么当你开机后 ...
- Java调用阿里云短信接口,发送短信
Java调用阿里云短信接口,发送短信 1.短信服务这个很简单,只需要知道accessKeyId(AK).accessKeySecret(SK).短信签名.短信模板即可. 2.域名和产品名称是固定的,使 ...
- php对接短信宝,php使用短信宝发送短信的方法
本文主要和大家分享php使用短信宝发送短信的方法,使用短信宝需要先在官网上注册一个用户名密码,希望能帮助到大家. 注意:如果没有购买短信,则只用来测试短信速度,短信内容不可编辑,只可修改验证码数字.. ...
最新文章
- win8中计算机的工具在哪,Win8画图工具在哪,Win8怎么打开画图?
- 同一个工作组无法查看计算机,win7系统在同一个工作组看不到其他电脑的解决方法...
- KVC、KVO实现过程
- MVC后台数据赋值给前端JS对象
- java五层架构_Web五层架构
- 【蓝桥杯】题目 1429: 兰顿蚂蚁
- 根据某一字段值去重查找出所有字段的数据
- apache 配置虚拟域名默认站点问题
- 愚人节将至,怎么恶搞最过瘾
- excel表格同一单元格里删除重复词
- 入门月薪8k,3年年薪35w,大数据的就业前景与薪酬待遇浅析
- 2022 CCF中国开源大会—开放原子开源创新发展论坛即将开幕
- java输出中写html标签,java 输出html标签
- TopoTag:A Robust and Scalable Topological Fiducial Marker System 笔记
- Win10 1903过TP的双机调试
- 深入浅出Java Object Layout (JOL)
- 经典开源Windows工具
- Atom 打造无懈可击的 Markdown 编辑器
- Win11桌面图标的小盾牌怎么去掉?
- python时间序列分析2-平稳时间序列分析
热门文章
- 微信壁纸小程序源码修复图片无法下载-完美运营版本
- 如何优雅的修改 Kubernetes Master 节点 IP?可没你想象中那么简单!
- Codeforces Round #614 (Div. 1) C.Xenon's Attack on the Gangs(树形dp)
- 《复杂网络分析》习题及自我解答
- c语言编程输出皮卡丘,c语言001第一节课程-函数方式输出皮卡丘画 2019-06-24
- 第一天:什么是Flink、WordCount入门、Flink安装、并行度
- select苹果手机样式设置
- 【Unity】Unity下载器下载不下IOS/Android等模块的解决办法
- 黑苹果 MacOS 10.15 Catalina安装教程
- 输入一个整数n,统计1-n之间的奇数和。你有几种办法实现?