编译并调用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++版本】
114 1
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
520 0
|
12月前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
556 64
|
12月前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
672 63
|
Dart API 开发工具
Dart ffi 使用问题之Dart API要在C++中使用,该如何初始化
Dart ffi 使用问题之Dart API要在C++中使用,该如何初始化
|
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相关链接整理)
1067 2
|
缓存 C++ Windows
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
|
XML JSON JavaScript
推荐一个比较好用的c++版本http协议库-cpp-httplib
推荐一个比较好用的c++版本http协议库-cpp-httplib
1162 1
|
Linux API C++
【Linux C/C++ 线程同步 】Linux API 读写锁的编程使用
【Linux C/C++ 线程同步 】Linux API 读写锁的编程使用
168 1
|
JSON Linux API
一个C++版本的Sqlite3封装--SmartDb
一个C++版本的Sqlite3封装--SmartDb
196 0

热门文章

最新文章