编译并调用iot中云端api的pub c++版本

简介: 编译并调用iot中云端api的pub c++版本。

1.首先打开链接:https://next.api.aliyun.com/api/Iot/2018-01-20/Pub?params={}&sdkStyle=old&tab=DEBUG&lang=CPP

在这里调试pub接口,填入正确的ProductKeyTopicFullName,MessageContent,如果是企业实例,需要选择对应的地域和IotInstanceId。

image.png

2.在SDK示例中,找到原版的c++代码,拷贝出来保存。image.png

截图中的代码保存为 pub.cc:

#include<cstdlib>

#include<iostream>

#include<alibabacloud/core/AlibabaCloud.h>

#include<alibabacloud/core/CommonRequest.h>

#include<alibabacloud/core/CommonClient.h>

#include<alibabacloud/core/CommonResponse.h>


usingnamespace std;

usingnamespace AlibabaCloud;


int main(int argc,char** argv )

{

   AlibabaCloud::InitializeSdk();

   AlibabaCloud::ClientConfiguration configuration("cn-shanghai");

   // specify timeout when create client.

   configuration.setConnectTimeout(1500);

   configuration.setReadTimeout(4000);

   AlibabaCloud::Credentials credential("","");

   /* use STS Token

   credential.setSessionToken( "" );

   */

   AlibabaCloud::CommonClient client( credential, configuration );

   AlibabaCloud::CommonRequest request(AlibabaCloud::CommonRequest::RequestPattern::RpcPattern);

   request.setHttpMethod(AlibabaCloud::HttpRequest::Method::Post);

   request.setDomain("iot.cn-shanghai.aliyuncs.com");

   request.setVersion("2018-01-20");

   request.setQueryParameter("Action","Pub");

   request.setQueryParameter("TopicFullName","/${productKey}/${deviceName}/user/get");

   request.setQueryParameter("ProductKey","${productKey}");

   request.setQueryParameter("MessageContent","dGhpcyBpcyBhIGV4YW1wbGU=");


   auto response = client.commonResponse(request);

   if(response.isSuccess()){

       printf("request success.\n");

       printf("result: %s\n", response.result().payload().c_str());

   }else{

       printf("error: %s\n", response.error().errorMessage().c_str());

       printf("request id: %s\n", response.error().requestId().c_str());

   }


   AlibabaCloud::ShutdownSdk();

   return0;

}

2.登录阿里云ecs服务器,我的调试环境为:Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-73-generic x86_64)。

参考github中文档中的步骤依次执行:https://github.com/aliyun/aliyun-openapi-cpp-sdk/blob/master/README-CN.md

依次执行命令:

apt-get update

sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev libjsoncpp-dev

//如果没有安装git,需要执行 sudo apt-get install git

git clone https://github.com/aliyun/aliyun-openapi-cpp-sdk.git

cd aliyun-openapi-cpp-sdk

mkdir sdk_build

cd sdk_build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_PRODUCT="iot"..

make

sudo make install

到此iot库已经编译成功,下面是编译过程中的截图。

1.jpg2.jpg

4.jpg


接下来编译pub测试用例,把上面的保存的代码(本示例中代码参数需要自行填入,否则会运行失败),放到服务器某个地方。

执行命令:

g++ -o pub pub.cc --std=c++11 -lalibabacloud-sdk-core -l alibabacloud-sdk-iot

./pub

下面执行效果:

5.jpg


目录
相关文章
二叉树进阶面试题(精华总结)【C++版本】
二叉树进阶面试题(精华总结)【C++版本】
161 1
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
639 0
|
算法 API 计算机视觉
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
272 0
|
消息中间件 负载均衡 监控
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
【ZMQ PUB模式指南】深入探究ZeroMQ的PUB-SUB模式:C++编程实践、底层原理与最佳实践
3943 1
|
2月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
149 11
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
700 64
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
814 63
|
Linux vr&ar C语言
Linux怎样更新Centos下Gcc版本支持C17?Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)
Linux怎样更新Centos下Gcc版本支持C17?Centos7快速安装gcc8.3.1 可支持C++17(附gcc相关链接整理)
1247 2
|
缓存 C++ Windows
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
|
存储 C++ Python
C++版本netCDF在Visual Studio中的部署
【2月更文挑战第20天】本文介绍在Windows电脑的Visual Studio软件中,配置C++语言最新版netCDF库的方法~
342 3
C++版本netCDF在Visual Studio中的部署