广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java实现短信发送
  • 426
分享到

Java实现短信发送

java开发语言 2023-09-07 05:09:15 426人浏览 八月长安
摘要

首先,我们要实现Java短信发送功能需要去申请第三方短信接口,以阿里云为例 点击跳转 在api市场中找到短信验证码接口: 我们可以先选择免费试用来测试: 点击立即购买后可前往控制台查看: OK

首先,我们要实现Java短信发送功能需要去申请第三方短信接口,以阿里云为例
点击跳转
阿里云
api市场中找到短信验证码接口:
短信验证码接口
我们可以先选择免费试用来测试
免费试用
点击立即购买后可前往控制台查看:
控制台
OK,一切就绪后我们开始测试使用。
首先我们先回到商品详情页,在商品详情页下面,说明了这个接口的调用地址以及请求参数等:
请求参数
接下来我们通过实例来调用接口进行测试:
1、加入相关依赖
具体可参考:相关依赖

<dependency><groupId>com.alibabagroupId><artifactId>fastJSONartifactId><version>1.2.15version>dependency>        <dependency>            <groupId>org.apache.HttpcomponentsgroupId>            <artifactId>httpclientartifactId>            <version>4.2.1version>        dependency>        <dependency>            <groupId>org.apache.httpcomponentsgroupId>            <artifactId>httpcoreartifactId>            <version>4.2.1version>        dependency>        <dependency>            <groupId>commons-langgroupId>            <artifactId>commons-langartifactId>            <version>2.6version>        dependency>        <dependency>            <groupId>org.eclipse.jettygroupId>            <artifactId>jetty-utilartifactId>            <version>9.3.7.v20160115version>        dependency>        <dependency>            <groupId>junitgroupId>            <artifactId>junitartifactId>            <version>4.5version>            <scope>testscope>        dependency>

2、创建HttpUtils.java类
HttpUtils.java类官方也已经帮我们封装好了,我们可以直接前往GitHub下载,点击跳转
这里就直接把代码放上了

package com.aliyun.api.gateway.demo.util;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.security.KeyManagementException;import java.security.NoSuchAlGorithmException;import java.security.cert.X509Certificate;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import org.apache.commons.lang.StringUtils;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFORMEntity;import org.apache.http.client.methods.HttpDelete;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpPut;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeReGIStry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.entity.ByteArrayEntity;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;public class HttpUtils {public static HttpResponse doGet(String host, String path, String method, Map<String, String> headers, Map<String, String> querys)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpGet request = new HttpGet(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.geTKEy(), e.getValue());        }                return httpClient.execute(request);    }public static HttpResponse doPost(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, Map<String, String> bodys)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpPost request = new HttpPost(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());        }        if (bodys != null) {            List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();            for (String key : bodys.keySet()) {                nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));            }            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");            formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");            request.setEntity(formEntity);        }        return httpClient.execute(request);    }public static HttpResponse doPost(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, String body)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpPost request = new HttpPost(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());        }        if (StringUtils.isNotBlank(body)) {        request.setEntity(new StringEntity(body, "utf-8"));        }        return httpClient.execute(request);    }public static HttpResponse doPost(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, byte[] body)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpPost request = new HttpPost(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());        }        if (body != null) {        request.setEntity(new ByteArrayEntity(body));        }        return httpClient.execute(request);    }public static HttpResponse doPut(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, String body)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpPut request = new HttpPut(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());        }        if (StringUtils.isNotBlank(body)) {        request.setEntity(new StringEntity(body, "utf-8"));        }        return httpClient.execute(request);    }public static HttpResponse doPut(String host, String path, String method, Map<String, String> headers, Map<String, String> querys, byte[] body)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpPut request = new HttpPut(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());        }        if (body != null) {        request.setEntity(new ByteArrayEntity(body));        }        return httpClient.execute(request);    }public static HttpResponse doDelete(String host, String path, String method, Map<String, String> headers, Map<String, String> querys)            throws Exception {        HttpClient httpClient = wrapClient(host);    HttpDelete request = new HttpDelete(buildUrl(host, path, querys));        for (Map.Entry<String, String> e : headers.entrySet()) {        request.addHeader(e.getKey(), e.getValue());        }                return httpClient.execute(request);    }private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {    StringBuilder sbUrl = new StringBuilder();    sbUrl.append(host);    if (!StringUtils.isBlank(path)) {    sbUrl.append(path);        }    if (null != querys) {    StringBuilder sbQuery = new StringBuilder();        for (Map.Entry<String, String> query : querys.entrySet()) {        if (0 < sbQuery.length()) {        sbQuery.append("&");        }        if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {        sbQuery.append(query.getValue());                }        if (!StringUtils.isBlank(query.getKey())) {        sbQuery.append(query.getKey());        if (!StringUtils.isBlank(query.getValue())) {        sbQuery.append("=");        sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));        }                        }        }        if (0 < sbQuery.length()) {        sbUrl.append("?").append(sbQuery);        }        }        return sbUrl.toString();    }private static HttpClient wrapClient(String host) {HttpClient httpClient = new DefaultHttpClient();if (host.startsWith("https://")) {sslClient(httpClient);}return httpClient;}private static void sslClient(HttpClient httpClient) {        try {            SSLContext ctx = SSLContext.getInstance("TLS");            X509TrustManager tm = new X509TrustManager() {                public X509Certificate[] getAcceptedIssuers() {                    return null;                }                public void checkClientTrusted(X509Certificate[] xcs, String str) {    }                public void checkServerTrusted(X509Certificate[] xcs, String str) {    }            };            ctx.init(null, new TrustManager[] { tm }, null);            SSLSocketFactory ssf = new SSLSocketFactory(ctx);            ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);            ClientConnectionManager ccm = httpClient.getConnectionManager();            SchemeRegistry registry = ccm.getSchemeRegistry();            registry.register(new Scheme("https", 443, ssf));        } catch (KeyManagementException ex) {            throw new RuntimeException(ex);        } catch (NoSuchAlgorithmException ex) {        throw new RuntimeException(ex);        }    }}

3、发送验证码

public static void main(String[] args) {        //短信api调用地址        String host = "https://dfsns.market.alicloudapi.com";        //请求路径        String path = "/data/send_sms";        //请求方式        String method = "POST";        //appcode:自己的AppCode,可以在自己的控制台找到,是一串32位的字符串        String appcode = "14xfa0523x3s2fe8ep0u54te14c2w36ad";        Map<String, String> headers = new HashMap<String, String>();        //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105        headers.put("Authorization", "APPCODE " + appcode);        //根据API的要求,定义相对应的Content-Type        headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");        Map<String, String> querys = new HashMap<String, String>();        Map<String, String> bodys = new HashMap<String, String>();        //使用随机数生成4位验证码        StringBuilder stringBuilder = new StringBuilder();        for (int i = 0; i < 4; i++) {            int randomNum = (int) (Math.random()*10);            stringBuilder.append(randomNum);        }        String code = stringBuilder.toString();        //这里是要发送给用户的验证码,我们使用了随机数进行生成        bodys.put("content", "code:"+code);        //这里是接受短信的手机号码,我们在实际开发时这里就不能写死了        bodys.put("phone_number", "176****5321");        //这里是发送短信的模板ID:代表整体短信文案模板        bodys.put("template_id", "TPL_0000");        try {            HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);            System.out.println(response.toString());            //获取response的body            System.out.println(EntityUtils.toString(response.getEntity()));        } catch (Exception e) {            e.printStackTrace();        }    }

好的大功告成,我们可以看下控制台给我们的打印:
打印
说明发送成功了。我们打开手机也可以看到发给我们的验证码
手机收到

来源地址:https://blog.csdn.net/qq_45004609/article/details/128188964

--结束END--

本文标题: Java实现短信发送

本文链接: https://www.lsjlt.com/news/397668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现短信发送
    首先,我们要实现Java短信发送功能需要去申请第三方短信接口,以阿里云为例 点击跳转 在API市场中找到短信验证码接口: 我们可以先选择免费试用来测试: 点击立即购买后可前往控制台查看: OK...
    99+
    2023-09-07
    java 开发语言
  • Java怎么实现短信发送
    本篇内容主要讲解“Java怎么实现短信发送”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么实现短信发送”吧!1. 引入相关maven依赖<dependency><gr...
    99+
    2023-06-22
  • java发送短信的实现步骤
    一、在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了。中国网建注册地址:http://sms.webchinese.cn/reg.shtml;二、...
    99+
    2023-05-31
    java 发送短信 ava
  • java怎么实现发送短信功能
    在阿里云短信服务中添加签名在阿里云短信服务中添加模板创建属于自己的AccessKey ID和Access Key Secret需要下载两个jar包aliyun-java-sdk-core-3.3.1.jar aliyun-java-sdk-...
    99+
    2019-10-31
    java基础 java 发送 短信 功能
  • PHP实现手机短信接口发送短信
    随着互联网的普及,短信已经成为人们日常生活中不可或缺的一部分。我们在各种场合下都会使用到短信,例如注册账号、确认订单、找回密码、验证码验证等等。其中,短信验证码验证是目前最常用的方式之一。而在实现短信验证码验证的过程中,短信发送接口的实现显...
    99+
    2023-05-22
    接口 PHP 手机短信
  • PHP调用乐信短信接口实现短信发送
    近年来,短信作为一种高效快捷的通信手段,被广泛地应用于各种场景,比如验证码验证、营销推广、订单通知等。而乐信短信平台作为国内领先的短信服务提供商,其稳定可靠的服务受到了广大客户的信任和好评。本文将介绍如何利用 PHP 编程语言,调用乐信短信...
    99+
    2023-05-21
    PHP 调用 短信接口
  • Android实现短信发送功能
    本文实例实现了两个模拟器之间短信的发送功能,分享给大家供大家参考,具体实现内容如下 1.编辑String.xml文件内容为: <?xml version=”1...
    99+
    2022-06-06
    Android
  • SpringBoot怎么实现短信发送
    这篇“SpringBoot怎么实现短信发送”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎么实现短信发送...
    99+
    2023-06-29
  • PHP调用鼎信通短信接口实现短信发送
    近年来,随着移动互联网的发展,短信成为了人们交流的一种重要工具。而如何实现短信的快速发送,对于企业来说则尤为重要。本文将介绍如何使用PHP语言调用鼎信通短信接口实现短信的自动发送。一、注册鼎信通账户并获取API接口密钥在使用鼎信通短信接口之...
    99+
    2023-05-21
    PHP 短信发送 鼎信通短信接口
  • PHP调用企信通短信接口实现短信发送
    企信通是目前国内最大的企业级短信服务提供商之一,其短信接口简单易用,为广大企业用户所喜爱。本文将介绍如何使用PHP调用企信通短信接口实现短信发送。一、申请企业短信接口账号首先,我们需要在企信通官网上申请企业短信接口账号。根据官网提示填写相关...
    99+
    2023-05-22
    PHP 短信发送 企信通
  • PHP发送HTTP请求实现批量短信发送
    PHP是一种流行的网页编程语言,用于开发动态Web应用程序。与其他编程语言相比,PHP与HTTP请求的集成较好,使其成为发送批量短信的理想语言。在本文中,我们将介绍如何使用PHP发送HTTP请求来实现批量短信发送。假设我们有一个来自电信服务...
    99+
    2023-05-24
    Http请求 PHP 短信发送
  • Android短信发送器实现方法
    本文实例讲述了Android短信发送器实现方法。分享给大家供大家参考。具体如下: 这里模拟android短信发送器的实现 AndroidManifest.xml清单文件: &...
    99+
    2022-06-06
    方法 Android
  • 简单实现android短信发送器
    先看看效果图: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com...
    99+
    2022-06-06
    Android
  • javascript实现发送短信倒计时
    本文实例为大家分享了javascript实现发送短信倒计时的具体代码,供大家参考,具体内容如下 实现思路: 1、js获取发送按钮元素对象 2、设置一个发送间隔时间(全局变量) 3、...
    99+
    2022-11-12
  • python发送短信
    import http.clientimport urllib host = "106.ihuyi.com"sms_send_uri = "/webservice/sms.phpmethod=Submit" account =...
    99+
    2023-01-31
    发送短信 python
  • 使用Java第三方实现发送短信功能
    目录一、介绍二、使用步骤1. 平台注册2. 短信签名和短信模板2.1 设置签名文字短信 -> 短信设置 -> 签名管理 -> 添加新的签名2.2 设置模板文字短信 ...
    99+
    2023-03-24
    Java第三方 Java发送短信 第三方发送短信
  • Java如何实现发送短信验证码功能
    小编给大家分享一下Java如何实现发送短信验证码功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在J...
    99+
    2023-05-30
    java
  • PHP对接阿里云短信接口实现发送短信
    随着互联网的普及和移动数据的发展,短信服务成为了传统营销和业务通知不可或缺的一部分。阿里云短信服务因为稳定、快速、高效、易于维护等优势,成为了众多企业和开发者的首选。在阿里云短信服务中,完整的调用过程包括:获取AK和SK、初始化客户端、设置...
    99+
    2023-05-21
    PHP 发送短信 阿里云短信接口
  • PHP调用腾讯云短信接口实现发送短信
    PHP调用腾讯云短信接口实现发送短信随着移动互联网的发展,短信成为了日常生活中必不可少的交流工具,而短信营销、验证码等应用也越来越普遍。腾讯云短信平台提供了一种便捷、安全、高效的短信服务,而PHP调用腾讯云短信接口实现发送短信也变得越来越简...
    99+
    2023-05-21
    PHP 腾讯云短信接口 发送短信
  • Android实现短信加密功能(发送加密短信、解密本地短信)
    短信加密此类功能由于新手学习的需求量较小,所以在网上很少有一些简单的demo供新手参考。小编做到此处也是花了比较多的时间自我构思,具体的过程也是不过多描述了,讲一下demo的内...
    99+
    2022-06-06
    加密 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作