热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JAVA程序通过调用腾讯云短信API发送天气信息

文章目录一、前期说明二、代码实现三、最终效果一、前期说明腾讯云短信服务的申请流程网上有很多例子,这里就不再重新叙述了,具体的可以参考:腾讯云短信服务的申请和验证使用详细流程二、代码




文章目录


      • 一、前期说明
      • 二、代码实现
      • 三、最终效果



一、前期说明

腾讯云短信服务的申请流程网上有很多例子,这里就不再重新叙述了,具体的可以参考:腾讯云短信服务的申请和验证使用详细流程


二、代码实现


  1. 导入所需的包


    com.tencentcloudapi
    tencentcloud-sdk-java
    3.1.87


    com.github.qcloudsms
    qcloudsms
    1.0.6


    如何在IDEA中配置Maven具体可参考:IDEA中配置Maven以及创建一个Maven项目


  2. 完整代码

    import com.tencentcloudapi.common.Credential;
    import com.tencentcloudapi.common.exception.TencentCloudSDKException;
    import com.tencentcloudapi.common.profile.ClientProfile;
    import com.tencentcloudapi.common.profile.HttpProfile;
    import com.tencentcloudapi.sms.v20190711.SmsClient;
    import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
    import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    public class SendSms
    {
    /**
    * 获取天气信息
    * @return
    */
    public static String weather() throws IOException {
    //0. 将发送给图灵机器人的文字转化为URL编码
    String question = URLEncoder.encode("重庆天气", "UTF-8");
    //1. 先准备一个URL类的对象 u
    URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question="+question);
    //2. 打开服务器连接,得到连接对象 conn
    URLConnection cOnn= url.openConnection();
    //3. 获取加载数据的字节输入流 is
    InputStream is = conn.getInputStream();
    //4. 将is装饰为能一次读取一行的字符输入流 br
    BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
    //5. 加载一行数据并数据处理
    String data = br.readLine();
    String[] text = data.split("重庆今天");
    String[] text1 = text[1].split(" ");
    //6. 显示
    System.out.println(text[1]);
    System.out.println(text1[0]);
    //7. 释放资源
    br.close();
    //8. 返回信息
    return text1[0];
    }
    /**
    * 短信发送
    * @param args
    */
    public static void main(String [] args) {
    try{
    /* 必要步骤:
    * 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey
    * 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值
    * 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人
    * CAM 密钥查询:https://console.cloud.tencent.com/cam/capi
    */
    Credential cred = new Credential("XXXXXX", "XXXXXX");
    // 实例化一个 http 选项,可选,无特殊需求时可以跳过
    HttpProfile httpProfile = new HttpProfile();
    httpProfile.setEndpoint("sms.tencentcloudapi.com");
    /* 实例化一个客户端配置对象 */
    ClientProfile clientProfile = new ClientProfile();
    clientProfile.setHttpProfile(httpProfile);
    /* 实例化 SMS 的 client 对象
    * 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 */
    SmsClient client = new SmsClient(cred, "", clientProfile);
    SendSmsRequest req = new SendSmsRequest();
    // 添加手机号码,例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号。
    String[] phoneNumberSet1 = {"XXXXXX"};
    req.setPhoneNumberSet(phoneNumberSet1);
    // 获取天气
    String data = weather();
    // 模板参数,若无模板参数,则设置为空。
    String[] templateParamSet1 = {data};
    req.setTemplateParamSet(templateParamSet1);
    // 模板 ID,必须填写已审核通过的模板 ID。
    req.setTemplateID("XXXXXX");
    // 短信SdkAppid在 短信控制台 添加应用后生成的实际SdkAppid,示例如1400006666。
    req.setSmsSdkAppid("XXXXXX");
    // 短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 短信控制台 查看。
    req.setSign("XXXXXX");
    SendSmsResponse resp = client.SendSms(req);
    System.out.println(SendSmsResponse.toJsonString(resp));
    } catch (TencentCloudSDKException | IOException e) {
    System.out.println(e.toString());
    }
    }
    }

    注意:将上述 " XXXXXX " 替换为自己申请的参数

    同样腾讯云控制台也支持在线调试:短信服务在线调试



三、最终效果


  1. 打印输出

  2. 手机接收的短信消息



推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Maven 无法打包jar到 Tomcat
    今天新来的同事,让他调试短信验证的接口。跟我说添加的aliyun的短信验证服务无法在tomcat上运行。然后给我看了报错信息:java.lang.NoClassDefFoundEr ... [详细]
  • 1.背景java.util.concurrent.atomic这个包是非常实用,解决了我们以前自己写一个同步方法来实现类似于自增长字段的问题。在Java语言中,增量操作符(++)不是原子的, ... [详细]
  • Java中的FileStoregetUsableSpace()方法,带示例 ... [详细]
  • 我正在使用数组列表通过构建一个交互式菜单供用户选择来存储来自用户输入的值。到目前为止,我的两个选择是为用户提供向列表输入数据和读取列表的全部内容。到目前为止,我创建的代码由两个类组成。 ... [详细]
  • Android 自定义控件基础 canvas paint
    1、首先说一下canvas类:ClassOverviewTheCanvasclassholdsthedrawcalls.Todrawsomething,youne ... [详细]
  • 尝试在数据库中查询数据并在datatables中异步显示时总是报错。有人帮我看下吗,好像是这个json的格式出问题,我看了firebug,应该是servlet返回的json数据格式问题,但因为新 ... [详细]
  • IDEA实用插件Lombok
    LombokLombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。通常,我们所定义的对象和b ... [详细]
  • 下载完成之后解压提取jl1.0.0.1.jar这里写图片描述将jl1.0.0.1.jar拷贝到项目中,并添加到Library这里写图片描述4.源代码Tip:由于工程名 ... [详细]
  • 1.什么是hashcode方法?hashcode方法返回对象的哈希码值在应用程序的执行期间,只要对象的equals方法的比较操作所用到的信息没有改变& ... [详细]
  • 一、在androidStudio中实现tabs比较简单,新建项目就可以选择tabs模板进行创建,默认实现tabs功能:直接运行项目就可以看到效果:可以说非常简单,但是我们在实际开发 ... [详细]
  • 将android-support-multidex.jar放到libs下然后编译,出现如下错误:Error:Executionfailedfortask':app:pack ... [详细]
  • flutter 环境安装以及配置
    首先需要下载flutter源码,以下是github地址:https:github.comflutterflutter然后需要安装git环境吧,下图红框可以自行下载安装接下来需要安装 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
author-avatar
美竹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有