短信宝接入发送短信实测 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);

效果示例

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45405.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采用API方式发送,接收短信(嘉信)

API方式: 首选要在jx01移动代理服务器中进行如下配置 系统管理-->接口管理-->短信接口模块增加如下配置信息 接口编码&#xff1a; 接口名称&#xff1a; 接口类型&#xff1a;DB接口 API接口 WEB SERVICE接口 SOCKET接口 通信能力&#xff1a;短信 WAP 业务类型…

免费短信接口

话不多说&#xff0c;自己短信量太多了&#xff0c;快过期了&#xff0c;提供自己的免费云短信接口和测试窗口&#xff0c;想用的直接调我接口就行。 ps&#xff1a;不打马赛克不能发出来图&#xff1b;参数传递的id说一下&#xff0c;注册就传1173965&#xff0c;登录传&#…

解决微信“聊天界面中的新消息通知”设置按钮不见了问题

原因 解决微信“聊天界面中的新消息通知”设置按钮不见了问题 解决方法 开启“接收新消息通知”后&#xff0c;“聊天界面中的新消息通知”设置按钮就会出现

Android使用通知(Notification)——方法过时的解决办法

今天照着《Android第一行代码第二版-郭霖》把通知那部分的代码实现了一下&#xff0c;结果发现 Notification notification new NotificationCompat.Builder(this)过时了。 我查了一下开发者文档&#xff0c;根据文档可以看到public Builder (Context context)已经过时了&…

企业微信客户群事件通知

企业微信: https://work.weixin.qq.com/ 概述 企业微信在推送消息给企业时&#xff0c;会对消息内容做AES加密&#xff0c;以XML格式POST到企业应用的URL上。 企业在被动响应时&#xff0c;也需要对数据加密&#xff0c;以XML格式返回给企业微信。 通知回调地址配置 获取access…

Android APP被关闭后无法收到推送消息(尝试)

1. Android端进程被杀死后&#xff0c;目前自带的保护后台接收消息活跃机制。暂时没有什么好的机制保持任何情况下都活跃 文章参考&#xff1a;http://blog.csdn.net/marswin89/article/details/50917098 android原生系统用home键杀进程可以起来&#xff0c;如果是强行停止…

通知与服务——消息通知——通知推送Notification

手机通知栏存放的是App主动推给用户的提醒消息&#xff0c;每条消息包括消息图标、消息标题、消息内容等&#xff0c;这些消息元素由通知建造器Notification.Builder设定。 常用方法如下&#xff1a; setSmallIcon&#xff1a;设置应用名称左边的小图标。setLargeIcon&#xff…

Android Notification(通知消息)

Android Notification通知消息 Android Notification(通知消息)样式一、核心文件源码二、主界面页面三、单击通知跳转的Activity四、单击通知跳转的页面五、最终效果 Android Notification(通知消息)样式 ① 为小图标 ② 为App名称 ③ 为标题 ④ 为内容 ⑤ 为大图标 一、核心文…

Android直接回复通知

Android直接回复通知 通知直接回复 Android N/7.0 Android直接回复通知 前言创建通知 创建notification对象添加一个Action添加一个广播接收Action事件添加直接回复输入框把直接回复的内容发送到广播接收器结合Hands Up带来超棒的用户体验 Hands Up直接回复通知不消失的问题总结…

Android 实现微信,QQ的程序前后台切换:back键切换后台;点击通知栏恢复前台。

实现类似微信&#xff0c;QQ的前后台切换&#xff1a;back键切换后台&#xff1b;点击通知栏恢复前台。 1、back键切换后台的实现&#xff1a; 这个实现需要在主activity重写onbackpressed()方法。代码如下&#xff1a; Overridepublic void onBackPressed() {Intent intent…

Python源码学习笔记:Python虚拟机

Python虚拟机 注&#xff1a;本篇是根据教程学习记录的笔记&#xff0c;部分内容与教程是相同的&#xff0c;因为转载需要填链接&#xff0c;但是没有&#xff0c;所以填的原创&#xff0c;如果侵权会直接删除。此外&#xff0c;本篇内容大部分都咨询了ChatGPT&#xff0c;为笔…

Windows PyCharm 2022/2023 使用Centos7 的虚拟环境 venv 实现文件实时同步 代码代码Git自动识别 解决 Samba Cannot Save File 的问题

前期准备 git报错 fatal: unsafe repository 解决方法 因为是远程文件夹&#xff0c;老版本时没这个问题&#xff0c;新版本git或者pycharm有这个限制&#xff0c;不能自动识别更改的代码&#xff0c;报unsafe.directory的问题&#xff0c;直接暴力解决&#xff0c;加* git c…

接口间参数传递的一种解决方案

引言 做过接口自动化测试的同学肯定都熟悉在全链路测试过程中&#xff0c;很多业务场景的完成并非由单一接口实现&#xff0c;而是由很多接口组成的一条链路实现。例如你在淘宝上购物场景。 不同于单接口测试&#xff0c;这种链路型的接口自动化测试&#xff0c;由于接口间有参…

计算机应用设计大赛获奖信息,北京大学第六届“计算机应用设计大赛”圆满落幕...

6月6日下午&#xff0c;北京大学创新创意系列赛事颁奖典礼在英杰交流中心月光厅举行&#xff0c;会上颁发了计算机应用设计大赛、“挑战杯”系列竞赛、数学建模与计算机应用竞赛和“禁毒教育”创意大赛四项赛事的各类奖项。信息科学技术学院2013级本科生王迪作为获奖代表上台领…

魔物学院计算机,测试 | 你属于魔法学校什么学院的?

原标题&#xff1a;测试 | 你属于魔法学校什么学院的&#xff1f; 本Part长年主持&#xff1a;绿茶 本Part今日主人公&#xff1a;心理测试 如果你有机会在霍格沃茨魔法学校读书,依据你的性格,分院帽会把你分到哪个学院呢?你适合哪个学院呢?是高贵的斯莱特林,还是勇敢的格兰芬…

uniapp 微信小程序通过 wx.openCustomerServiceChat对接客服。

直接上解决方案&#xff0c;直接在绑定的方法中调用wx.openCustomerServiceChat 方法即可。 需要注意的几点。 hbuilder x 需升级到 3.4.3 版本以上。使用的&#xff0c;微信开发者工具中是看不到效果的&#xff0c;需要打包后&#xff0c;在微信中扫码查看。&#xff08;体验…

微软丢出王炸:微软发布重磅更新Windows Copilot

在今天凌晨结束的微软 Build 2023 大会上&#xff0c;微软发布了重磅更新Windows Copilot. 微软此前把 GPT-4 接入Office 套件而推出的 Copilot&#xff0c;将全面集成到 Windows 系统。 Windows Copilot 注册直通&#xff1a; https:/forms.office.com/pages/responsepage.asp…

仿QQ聊天程序

仿QQ聊天程序 转载请标明出处&#xff1a;牟尼的专栏 http://blog.csdn.net/u012027907 一、设计内容及要求 1.1综述 A.系统概述 我们要做的就是类似QQ这样的面向企业内部的聊天软件&#xff0c;基本功能和QQ类似。首先&#xff0c;系统分为两大部分&#xff0c;第一部分是…

仿微信语音聊天

如上图&#xff0c;是常见的仿微信的聊天程序&#xff0c;实现的效果如上图所示&#xff0c;由于项目太大&#xff0c;本文只讲录音部分。本项目示例代码&#xff1a;https://github.com/xiangzhihong/weixinAudio 主要用到4个核心类&#xff1a; 自定义录音按钮&#xff08;R…

Android 仿微信实现语音聊天功能

在此感谢鸿洋大神&#xff0c;因为我这是在慕课上看大神的视频做出来的。 代码中我已经添加了很多很多注释&#xff0c;不光是为了大家&#xff0c;也是为了自己能够更加透彻的理解该功能 支持原创&#xff0c;也不算原创了哈哈~ http://blog.csdn.net/lhk147852369/article/…