全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
阿里云SDK开发指南

使用异步方式访问

更新时间:2018-02-02 15:20:18

除同步请求外,阿里云 C++ SDK 还为您提供了异步处理接口通常为请求动作 + Async,如 describeInstancesAsync。

以下代码展示了如何调用 DescribeInstancesAPI 异步请求接口获取指定地域所有 ECS 实例的详细信息。

注意: 您需要替换示例中的 your-region-id、your-access-key-id 和 your-access-key-secret 的值。

  1. #include <chrono>
  2. #include <iostream>
  3. #include <alibabacloud/core/AlibabaCloud.h>
  4. #include <alibabacloud/ecs/EcsClient.h>
  5. using namespace AlibabaCloud;
  6. using namespace AlibabaCloud::Ecs;
  7. int main(int argc, char** argv)
  8. {
  9. // 初始化 SDK
  10. AlibabaCloud::InitializeSdk();
  11. // 配置 ecs 实例
  12. ClientConfiguration configuration("<your-region-id>");
  13. EcsClient client("<your-access-key-id>", "<your-access-key-secret>", configuration);
  14. // 创建API请求并设置参数
  15. Model::DescribeInstancesRequest request;
  16. request.setPageSize(10);
  17. client.describeInstancesAsync(request,
  18. [](const EcsClient*, const Model::DescribeInstancesRequest&,
  19. const EcsClient::DescribeInstancesOutcome&outcome,
  20. const std::shared_ptr<const AsyncCallerContext>&)
  21. {
  22. if (!outcome.isSuccess())
  23. // 异常处理
  24. std::cout << outcome.error().errorCode() << std::endl;
  25. else
  26. std::cout << "totalCount: " << outcome.result().getTotalCount() << std::endl;
  27. }, nullptr);
  28. // 执行其它操作
  29. using namespace std::chrono_literals;
  30. std::this_thread::sleep_for(5s);
  31. // 关闭 SDK
  32. AlibabaCloud::ShutdownSdk();
  33. return 0;
  34. }
本文导读目录