短信发送详解

news/2024/11/16 21:34:52/

前言:关于短信的发送其实是很简单的,只需要调用一下API即可,本章博客用互亿无线给大家开发这个功能。

第一步:官网打开链接接口地址

在这里插入图片描述
网站中有个接口下载,下载后出现下面的文件夹
在这里插入图片描述

文件夹介绍:点开文件夹DEMO,里面有各类程序的案例,我们找到java的打开,套用
在这里插入图片描述

第二步:编写程序


写看一下程序整体
在这里插入图片描述


- 首先创建MyJob类,并实现org.quartz.Job接口

public class MyJob implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println("开始发送短信。。。。。。。");SendSms.sendMSG("11111111111");//手机号码}
}

- 拿到\ihuyi-sms-3.3\互亿无线-短信验证码接口文档\DEMO\java\http_post\src\util中的StrinUtil类

在这里插入图片描述

- 放到程序创建的utils包中

在这里插入图片描述


public class StringUtil {public static String str;public static final String EMPTY_STRING = "";private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5","6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };private static String byteToHexString(byte b) {int n = b;if (n < 0)n = 256 + n;int d1 = n / 16;int d2 = n % 16;return hexDigits[d1] + hexDigits[d2];}/*** 转换字节数组为16进制字串* @param b 字节数组* @return 16进制字串*/public static String byteArrayToHexString(byte[] b) {StringBuffer resultSb = new StringBuffer();for (int i = 0; i < b.length; i++) {resultSb.append(byteToHexString(b[i]));}return resultSb.toString();}public static String MD5Encode(String origin) {String resultString = null;try {resultString = new String(origin);MessageDigest md = MessageDigest.getInstance("MD5");resultString = byteArrayToHexString(md.digest(resultString.getBytes()));} catch (Exception ex) {}return resultString;}}

- 还是一样,拿到sendsms类,复制到程序中

public class SendSms {private static String Url = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";public static void sendMSG(String phonemsg){HttpClient client = new HttpClient();PostMethod method = new PostMethod(Url);client.getParams().setContentCharset("GBK");method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=GBK");int mobile_code = (int)((Math.random()*9+1)*100000);String content = new String("您的验证码是:" + mobile_code + "。请不要把验证码泄露给其他人。");NameValuePair[] data = {//提交短信new NameValuePair("account", "C82828276"), //查看用户名是登录用户中心->验证码短信->产品总览->APIIDnew NameValuePair("password", "8114a057b6335ae18d917ec90ac9778a"),  //查看密码请登录用户中心->验证码短信->产品总览->APIKEY//new NameValuePair("password", util.StringUtil.MD5Encode("密码")),new NameValuePair("mobile", phonemsg),new NameValuePair("content", content),};method.setRequestBody(data);try {client.executeMethod(method);String SubmitResult =method.getResponseBodyAsString();//System.out.println(SubmitResult);Document doc = DocumentHelper.parseText(SubmitResult);Element root = doc.getRootElement();String code = root.elementText("code");String msg = root.elementText("msg");String smsid = root.elementText("smsid");System.out.println(code);System.out.println(msg);System.out.println(smsid);if("2".equals(code)){System.out.println("短信提交成功");}} catch (HttpException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{// Release connectionmethod.releaseConnection();//client.getConnectionManager().shutdown();}}
}

相较原代码需要修改的地方
在这里插入图片描述
拿到APIID和APIKEY,修改代码即可
在这里插入图片描述


- 编写类TestQuartz(SimpleTriggerImpl简单复杂触发器)

public class TestQuartz {public static void main(String[] args) throws Exception{//创建任务JobDetail jobDetail=new JobDetailImpl("myJob","group",MyJob.class);//创建一个触发器Trigger trigger =new SimpleTriggerImpl("trigger",1,2000);//3.创建调度器Scheduler scheduler=new StdSchedulerFactory().getScheduler();//4.调度任务scheduler.scheduleJob(jobDetail,trigger);//5.启动scheduler.start();}
}

运行后控制台打印:
在这里插入图片描述
说明成功了


这里说明一下:短信的API很多,可以百度查一下调用即可,是比较简单的,下载接口附带案例,直接套用代码即可,是比较简单实现的



原创文章,写的不好的地方还请多多包含




http://www.ppmy.cn/news/966698.html

相关文章

(转)android如何监听发送短信

转自&#xff1a;http://www.eoeandroid.com/thread-8990-1-1.html 回楼上&#xff1a;先写一个观察者&#xff1a; public class SmsObserver extends ContentObserver { private Context context; private static final String[] SMS_PROJECTION new …

短信接口被恶意调用?企业短信防火墙+【中昱维信】短信验证码【Java】

短信接口被恶意调用&#xff1f;企业短信防火墙【中昱维信】短信验证码【Java】 一、企业短信防火墙的实现1.1 简介1.2 第一步&#xff1a;获取防火墙帐号密钥1.3 第二步&#xff1a;下载防火墙服务器1.4 第三步&#xff1a;业务系统前后端接入1.5丰富可视化实时风险大盘&#…

android短信和彩信探秘threads

android源代码在 彩信sms 表和彩信 pdu表&#xff0c;增加了一个触发器 CREATE TRIGGER delete_obsolete_threads_pdu AFTER DELETE ON pdu BEGIN DELETE FROM threads WHERE _id old.thread_id AND _id NOT IN (SELECT thread_id FROM sms UNION SEL…

论文投稿指南——中国(中文EI)期刊推荐(第6期)

&#x1f680; EI是国际知名三大检索系统之一&#xff0c;在学术界的知名度和认可度仅次于SCI&#xff01;&#x1f384;&#x1f388; 【前言】 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊。其中&#xf…

关于网页版chatgpt喂投的一些讲解

ChatGPT云炬学长 喂投的定义及使用场景&#xff1a; 这一部分主要是解决这三个问题&#xff1a;啥是喂投。我们为什么要喂投。以及什么场景下面会用到喂投。 从AI专业名词的角度来说&#xff0c;并不存在“喂投”这么一个行为&#xff0c;这是一个不太专业化的俗称&#xff…

上海场:聚焦HR的未来发展,一起探索ChatGPT的“能”与“不能”

在4月20日的北京场“高管闭门会”圆满结束之后&#xff0c;我们于4月23日迎来了上海场的精彩讨论。 2023年4月23日&#xff0c;AI得贤招聘官与泛招聘求职领域内容人欧阳泽林联合举办的“HR高管闭门会”在上海圆满结束。本次座谈会关注HR的未来进展&#xff0c;重点研究ChatGPT在…

用ChatGPT4探索李清照的千古谜题寂寞寒窗空守寡的下联

试了试用大语言模型对千古才女易安居士李清照的绝联&#xff0c;看看会有什么惊喜 ^&^ 背景 北宋首都被大金攻占&#xff0c;李清照和丈夫也向南逃去。逃难的生活总归是苦的&#xff0c;他的丈夫赵明诚身子不好&#xff0c;不久在路上病逝了。 难得一遇的才女碰上如此称意…

chatgpt赋能python:Python迭代循环详解:从基础到高级

Python迭代循环详解&#xff1a;从基础到高级 在Python中&#xff0c;迭代循环是一种非常重要的编程概念。它能够让我们在程序运行过程中多次访问一个数据集或序列&#xff0c;并且以各种方式对其进行操作。在本文中&#xff0c;我们将深入探讨Python中的迭代循环&#xff0c;…