java对接阿里云短信平台

java对接阿里云短信平台1 使用自己的支付宝登录阿里云 https www aliyun com 购买免费的短信服务 搜索 短信 找到图中的 三网合一 进入点击立即购买 你也可以买有费用的 我测试用就免费申请的 每个用户只能申请一次免费的 点击 立即开通 支付成功后 点击 管理控制台 可以看到自己的短信服务 2 再次进入购买界面 查看短信接口的定义以及调用方式 本次案例是发送短信验证码 短信信息也是如此 换下接口和参数即可 3 编写代码需要 pom 引入一下 http 工具

1、使用自己的支付宝登录阿里https://www.aliyun.com/,购买免费的短信服务。

java对接阿里云短信平台

搜索“短信”找到图中的【三网合一】进入

java对接阿里云短信平台

点击立即购买,你也可以买有费用的,我测试用就免费申请的(每个用户只能申请一次免费的)。

java对接阿里云短信平台

点击“立即开通”

java对接阿里云短信平台

支付成功后,点击“管理控制台”,可以看到自己的短信服务

java对接阿里云短信平台

2、再次进入购买界面,查看短信接口的定义以及调用方式。

java对接阿里云短信平台

本次案例是发送短信验证码,短信信息也是如此,换下接口和参数即可。

3、编写代码

需要pom引入一下http工具

 
   
   
   
     org.apache.httpcomponents 
    
   
     httpclient 
    
   
     4.5.10 
    
   
   
   
     org.apache.httpcomponents 
    
   
     httpcore 
    
   
     4.4.10 
    
   
   
   
     org.apache.httpcomponents 
    
   
     httpmime 
    
   
     4.5.10 
    
  
package com.example.mybaties.utils; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; 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.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.util.HashMap; import java.util.Map; / * @Description: * @Author: lst * @Date */ public class SmsComponentUtil { private static String host = "https://smsmsgs.market.alicloudapi.com"; private static String path = "/sms/"; //自己申请的APPcode private static String appcode = ""; //模板编号 我用的1 private static String skin = "1"; private static String sign = "1"; public static void main(String[] args) { sendCode("手机号码",""); } public static void sendCode(String phone, String code) { String method = "GET"; Map 
  
    headers = new HashMap 
   
     (); //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fef570e3c headers.put("Authorization", "APPCODE " + appcode); Map 
    
      querys = new HashMap 
     
       (); querys.put("code", code); querys.put("phone", phone); querys.put("skin", skin); querys.put("sign", sign); try { HttpResponse response = doGet(host, path, method, headers, querys); //System.out.println(response.toString());如不输出json, 请打开这行代码,打印调试头部状态码。 //状态码: 200 正常;400 URL无效;401 appCode错误; 403 次数用完; 500 API网管错误 //获取response的body System.out.println(EntityUtils.toString(response.getEntity())); } catch (Exception e) { e.printStackTrace(); } } public static HttpResponse doGet(String host, String path, String method, Map 
      
        headers, Map 
       
         querys) throws Exception { HttpClient httpClient = wrapClient(host); HttpGet request = new HttpGet(buildUrl(host, path, querys)); for (Map.Entry 
        
          e : headers.entrySet()) { request.addHeader(e.getKey(), e.getValue()); } return httpClient.execute(request); } private static HttpClient wrapClient(String host) { HttpClient httpClient = new DefaultHttpClient(); if (host.startsWith("https://")) { sslClient(httpClient); } return httpClient; } private static String buildUrl(String host, String path, Map 
         
           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 
          
            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 void sslClient(HttpClient httpClient) { try { SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override 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); } } } 
           
          
         
        
       
      
     
    
  

4、测试

运行main方法,查看控制台信息如下

java对接阿里云短信平台

在查看自己的手机收到的短信

java对接阿里云短信平台

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200550.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午10:35
下一篇 2026年3月20日 上午10:35


相关推荐

  • 1024,节日快乐!

    1024,节日快乐!每个你不了解的新世界,都值得说一声“Hello,World!”,1024,祝大家节日快乐!少熬夜,多赚钱,护好发!

    2022年6月11日
    38
  • 【Qt5.12】Qt5.12安装教程[通俗易懂]

    【Qt5.12】Qt5.12安装教程[通俗易懂]00.目录文章目录00.目录01.软件下载02.软件安装03.软件测试04.附录01.软件下载Qt5.12下载网址:http://download.qt.io/archive/qt/5.12/5.12.2/选择Windows平台,Linux和Mac平台类似下载好之后的安装包:02.软件安装Step1:双击安装包,稍等片刻,然后点击nextStep2:…

    2022年5月13日
    117
  • linux设置法语键盘布局,法语键盘布局图「建议收藏」

    linux设置法语键盘布局,法语键盘布局图「建议收藏」《法语键盘布局图》由会员分享,可在线阅读,更多相关《法语键盘布局图(3页珍藏版)》请在人人文库网上搜索。1、法语键盘布局(适用环境:法语输入法,法语键盘布局)法语键盘布局介绍一、与英文键盘(普通键盘)的区别1.a和q的位置互换了2.z和W位置互换3.m和“分号和冒号键”是方便的表达方式,本文中提到的“特定键”是指国际标准键盘的键(即市场上销售的普通键盘键上印刷的字符),下同。“位置互换二。键盘上的…

    2025年8月14日
    2
  • 2026年OpenClaw(Clawdbot)小白部署教程及服务器安全配置指南

    2026年OpenClaw(Clawdbot)小白部署教程及服务器安全配置指南

    2026年3月15日
    3
  • arcmap重采样_ipproto_raw

    arcmap重采样_ipproto_raw参考文献:AcceleratedHypothesisGenerationforMulti-structureRobustFitting假设Input:{xi}i=1N\{x_i\}_{i=1}^N{xi​}i=1N​代表输入的N组数据,由N组数据随机采样生成了M个模型θ1,θ2,…θM{\theta_1,\theta_2,…\theta_M}θ1​,θ2​,…θM​,对于每一个个输入数据xix_ixi​,我们计算模型的残差得到该模型的分数r(i)=[r1(i),r2(i)…rM

    2026年2月12日
    3
  • java学的什么软件_java初学者用什么软件[通俗易懂]

    java学的什么软件_java初学者用什么软件[通俗易懂]Java初学者可以使用MyEclipse或eclipse以及记事本。随着学习的深入,相信你会逐渐明白,你会从中找到最合适的开发工具。java初学者使用什么软件Java初学者可以使用MyEclipse、eclipse或记事本。1对于初学者,不建议使用ide开发工具,如eclipse、MyEclipse、intellijidea和netbean。但是,您也可以使用这些。原因不推荐,不方便您了解java…

    2022年7月8日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号