当前位置: 首页 > news >正文

阿里云SMS服务C++ SDK编译及调试关键点记录

一. 阿里云SMS服务开通及准备工作

在阿里云官网上完成这部分的工作

1.  申请资质 个人or企业

我这里是用的企业资质

2. 申请签名

企业资质认证成功后,会自动赠送一个用于测试的短信签名

也可以自己再进行申请,需要等待审核。

3. 申请短信模板

企业资质认证成功后,会自动赠送一个用于测试的验证类短信模板,内容是发送一个验证码。

我这里又自己申请了一个通知类短信进行测试,需要等待审核。

注意,申请短信模板时一定要写清楚场景说明,写明测试的目的,和短信内容的关联,不然会审核不通过。

4.申请短信试用

个人用户和企业用户都可以免费试用的,记得申请。

5. 绑定测试手机号

在快速学习和测试中,添加测试用的手机号码,最多可以加5个。

6.生成并保存自己的ACCESS_KEY_ID和ACCESS_KEY_SECRET

通过以上6步骤,即完成网页端的申请和配置。

二. 阿里云SDK编译

在阿里云API门户(阿里云OpenAPI开发者门户)上搜索短信服务,可以找到相关所有的开发技术支持。

1. 选择V1.0版本的SDK,git下载到本地

2. CMAKE正常Configure成功后,BUILD_PRODUCT配置为dysmsapi,Generate生成工程alibabacloud-sdk.sln

CMAKE相关知识

【CMake】15分钟带你入门CMake_cmake原理-CSDN博客

CMake的原理与使用方法_cmake原理-CSDN博客

3. 打开工程alibabacloud-sdk.sln,选择INSTALL为启动项,分别在debug和release x64下生成解决方案,得到bin目录和lib目录

此过程中,个人笔记本电脑直接生成成功,但用个人工作电脑生成解决方案时出现curl lib cmake相关的报错,应为cmake过程出现错误,手动讲curl的include lib dll目录拷贝到工程目录下的3rdparty\curl-prefix\文件夹下后,不再报错。

完成以上工作后,SDK相关的准备工作即完成。

三. 测试

1. 新建工程

新建SMSTest工程

2. 拷贝依赖项到工程

将编译生成的bin目录和lib目录都拷贝到新工程目录下,将core目录和dysmsapi目录下的include文件夹拷贝并合并到新工程目录下

最终工程目录如下:

3. 配置工程的include目录和lib目录

4. 根据API编写代码

有一个偷懒的方法,在API门户中 选择调式 > 选择发送短信 > 填写发送的信息 > 选择SDK示例 > 选择V1.0 > 选择C++ 后,就会自动生成代码。

复制代码到工程中,需要填入自己的ACCESS_KEY_ID和ACCESS_KEY_SECRET,然后改一下模板中需要填写的参数就好了。

5. 调试工程

跑一下代码,根据报错修改程序,我这里是报了“error: Request parameters has malformed encoded characters.”这个错,中文编码的问题,需要设置编码方式为utf-8,这里参考了VS2022设置编码方式为utf-8的三种方式_vs utf8-CSDN博客的方法3后,发送成功。

相关文章:

阿里云SMS服务C++ SDK编译及调试关键点记录

一. 阿里云SMS服务开通及准备工作 在阿里云官网上完成这部分的工作 1. 申请资质 个人or企业 我这里是用的企业资质 2. 申请签名 企业资质认证成功后,会自动赠送一个用于测试的短信签名 也可以自己再进行申请,需要等待审核。 3. 申请短信模板 企…...

Flutter 正在迁移到 Swift Package Manager ,未来会弃用 CocoaPods 吗?

什么是 Swift Package Manager ?其实 Swift Package Manager (SwiftPM) 出现已经挺长一段时间了,我记得第一次听说 SwiftPM 的时候,应该还是在 2016 年,那时候 Swift 3 刚发布,不过正式出场应该还是在 2018 年的 Apple…...

PDF——分割pdf的10个工具

PDF分割器是一种可用于将PDF文档分割成更小的文档甚至单个页面的工具。分割 PDF 文档的主要原因是为了更容易共享。 但该过程的成功取决于您用于拆分 PDF 的工具。较简单的工具仅提供几个选项,可能并不适合所有类型的文档。我们将在本文中列出的 10 个最佳 PDF 分割…...

深入解析 Nginx 反向代理:配置、优化与故障排除

深入解析 Nginx 反向代理:配置、优化与故障排除 Nginx 是一个高性能的 HTTP 和反向代理服务器,它以其高并发和高可扩展性在业界享有盛誉。反向代理是 Nginx 的重要功能之一,通过反向代理可以实现负载均衡、安全代理、缓存等多种用途。本篇文…...

深度学习入门(一):感知机与输入数据

单层感知机与多层感知机 单层感知机(Single-Layer Perceptron)和多层感知机(Multi-Layer Perceptron,简称MLP)是神经网络的基本形式,用于执行各种机器学习任务,包括分类和回归。它们都基于早期…...

kubernetes 集群组件介绍

kubernetes 集群组件介绍 Kubernetes 架构 在Kubernetes(k8s)集群中,主节点(Master Node)和工作节点(Worker Node)都运行特定的软件组件,它们共同管理和运行容器化的应用程序。以下…...

Java | Leetcode Java题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; class Solution {public int countRangeSum(int[] nums, int lower, int upper) {long sum 0;long[] preSum new long[nums.length 1];for (int i 0; i < nums.length; i) {sum nums[i];preSum[i 1] sum;}BalancedTree treap ne…...

开发一个MutatingWebhook

介绍 Webhook就是一种HTTP回调&#xff0c;用于在某种情况下执行某些动作&#xff0c;Webhook不是K8S独有的&#xff0c;很多场景下都可以进行Webhook&#xff0c;比如在提交完代码后调用一个Webhook自动构建docker镜像 准入 Webhook 是一种用于接收准入请求并对其进行处理的…...

【leetcode详解】另一棵树的子树 (C++递归:思路精析 过程反思)

思路详解&#xff1a; 总体框架&#xff1a; 对root树进行先序遍历&#xff0c;如果当前结点&#xff08;记为cur&#xff09;的值和subRoot的根节点值相等时&#xff0c;就开始判断 以cur为根节点的树 和 子树 是否结构一样? 如何判断两棵树是否结构完全相同&#xff1f; …...

物联网遇到人工智能,极快的加速物联网时代

近些年物联网已成为众多科技企业的战略目标&#xff0c;如智能家居等&#xff0c;在未来&#xff0c;手机、传感器等智能设备都走进了生活当中&#xff0c;据数据显示已经有80%以上的的智能手机配备了人工智能。人工智能也不陌生&#xff0c;自动驾驶、人脸识别这些应用场景都是…...

Vue3+Ts项目中经常遇到导入组件,vscode报无法找到模块xxx,xxx隐式拥有 “any“ 类型解决办法~

1、报错截图&#xff1a; 2、解决办法&#xff1a;在确保路径正确的情况下&#xff0c;你会在 src 目录下找到一个名为 env.d.ts 的文件&#xff08;或者类似的名称&#xff09;。在这个文件中&#xff0c;你可以声明 .vue 文件的模块类型。例如&#xff1a;(这告诉 TypeScript…...

郑州轻工业大学zzulioj1151~1159合集

郑州轻工业大学zzulioj1151~1159合集 郑州轻工业大学zzulioj1151~1159合集 1150数数多少个整数1151大整数加法题目描述1152: 二分搜索1153简易版最长序列题目描述1154: 校门外的树1155字符串比较 多实例题目描述1156单数变复数题目描述1157连续的n个1题目描述1158又是排序&…...

开发框架DevExpress XAF v24.2产品路线图预览——增强跨平台性

DevExpress XAF是一款强大的现代应用程序框架&#xff0c;允许同时开发ASP.NET和WinForms。XAF采用模块化设计&#xff0c;开发人员可以选择内建模块&#xff0c;也可以自行创建&#xff0c;从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 DevExpress XAF是一…...

程序员短视频上瘾综合症

一、是你疯了还是面试官疯了&#xff1f; ​ 最近有两个学员咨询问题&#xff0c;把我给整得苦笑不得。大家来看看&#xff0c;你有没有同样的症状。 ​ 第一个学员说去一家公司面试&#xff0c;第一轮面试聊得挺好的。第二轮面试自我感觉良好&#xff0c;但是被面试官给Diss…...

image.convert()函数转换格式及显示图像的RGB三通道图像

引 言 视觉任务处理的图片按照图像通道深度分为单通道图像和多通道图像。单通道图像有grayscale灰度图、binary二值图、PNG图&#xff0c;多通道图像有三通道24位真彩色RGB图&#xff0c;8位伪彩色图像&#xff0c;YCbCr图像等。本文先介绍各种格式图像的特点&#xff0c;随后讲…...

C语言 ——— 在控制台实现扫雷游戏(一次展开一片,递归实现)

前言 两个数组&#xff0c;一个用来显示在控制台上&#xff0c;一个用来存放雷 两个数组的实际大小为11 * 11 &#xff0c;而为了方便排查雷的个数&#xff0c;实际使用范围是9 * 9 test.c #include"mine_sweeping.h"void game() {// 存放雷char mine[ROWS][COL…...

el7升级Apache模块编译

1.背景 接续https://blog.csdn.net/nanhai_happy/article/details/140566070&#xff0c;由于升级升级Apache过程中&#xff0c;发现需要使用的mod_wsgi、mod_systemd和mod_cgi模块缺失&#xff0c;故接着解决继续编译生成。 2. 编译mod_cgi、mod_system 2.1 安装依赖 yum …...

Linux系统下的日志管理与ELK Stack实践

关于“Linux系统下的日志管理与ELK Stack实践”&#xff0c;这个主题涵盖了如何在Linux环境中高效地收集、解析、存储及分析日志&#xff0c;以及如何利用ELK Stack&#xff08;Elasticsearch、Logstash、Kibana&#xff09;这套工具来实现日志的集中管理和可视化。下面我会简要…...

C++入门基础知识

在之前我们学习了C语言和初阶数据结构的相关知识&#xff0c;现在已经有了一定的代码能力和对数据结构也有了基础的认识&#xff0c;接下来我们将进入到新的专题当中&#xff0c;这个专题就是C。在C中我们需要花费更大的精力和更长的时间去学习这门建立在C语言基础之上的计算机…...

Python爬虫技术 第28节 数据可视化

Python 爬虫设计结合数据可视化是一个非常强大的组合&#xff0c;可以用来分析和展示从网络获取的数据。以下是如何设计一个 Python 爬虫并结合数据可视化的详细步骤&#xff1a; 步骤 1: 确定数据源和目标 首先&#xff0c;确定你想要爬取的数据源和目标。例如&#xff0c;你…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...