SDK 中心

简介

  • 欢迎使用腾讯云开发者工具套件(SDK)3.0,SDK 3.0 是云 API 3.0 平台的配套工具。SDK 3.0 实现了统一化,各个语言版本的 SDK 具备使用方法相同、接口调用方式相同、错误码和返回包格式相同等优点。
  • 本文以 .NET SDK 3.0 为例,介绍如何使用、调试并接入腾讯云产品 API。
  • 目前已支持云服务器 CVM、私有网络 VPC 、云硬盘 CBS 等 腾讯云产品,后续会支持其他云产品接入。

依赖环境

  • .NET Framework 4.5+ 或者 .NET Core 2.1。
  • 获取安全凭证。安全凭证包含 SecretId 及 SecretKey 两部分。SecretId 用于标识 API 调用者的身份,SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。前往 API 密钥管理 页面,即可进行获取,如下图所示:
    注意:

    您的安全凭证代表您的账号身份和所拥有的权限,等同于您的登录密码,切勿泄露他人。

  • 获取调用地址。调用地址(endpoint)一般形式为*.tencentcloudapi.com,产品的调用地址有一定区别,例如,云服务器的调用地址为cvm.tencentcloudapi.com。具体调用地址可参考对应产品的 API 文档

安装 SDK

方式一、通过 nuget 安装(推荐)

通过命令行安装(这里的版本仅作为示例,实际请选择最新版本):

    dotnet add package TencentCloudSDK --version 3.0.0
    # 其他信息请前往 www.nuget.org/packages/TencentCloudSDK 获取

注意:

命令需要在项目的主目录下执行。

通过 Visual Studio 添加包:
例如,创建一个 HelloWorld 项目:

dotnet new console -o HelloWorld
# 进入到 HelloWorld 项目主目录
dotnet run
# 输出为:Hello World!
dotnet add package TencentCloudSDK --version 3.0.0
# 为项目下载 SDK 依赖

说明:

  • 如果想单独安装某个产品,例如云服务器 CVM,则添加依赖 TencentCloudSDK.Cvm 即可。
  • 更多 SDK 支持的云产品,请参见 云产品名列表

方式二、通过源码安装

前往 Github 代码托管地址 下载最新代码,解压后安装到你的工作目录下,使用 Visual Studio 2017 打开编译。

使用 SDK

每个接口都有一个对应的 Request 结构和一个 Response 结构。例如,云服务器的查询实例列表接口 DescribeInstances 有对应的请求结构体 DescribeInstancesRequest 和返回结构体 DescribeInstancesResponse。

下面以云服务器查询实例列表接口为例,介绍 SDK 的基础用法。

using System;
using System.Threading.Tasks;
using TencentCloud.Common;
using TencentCloud.Cvm.V20170312;
using TencentCloud.Cvm.V20170312.Models;

namespace TencentCloudExamples
{
class DescribeInstances
{
static void Main(string[] args)
{
try
{
// 为了保护密钥安全,建议将密钥设置在环境变量中或者配置文件中。
// 硬编码密钥到代码中有可能随代码泄露而暴露,有安全隐患,并不推荐。
// 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
Credential cred = new Credential {
SecretId = Environment.GetEnvironmentVariable("TENCENTCLOUD_SECRET_ID"),
SecretKey = Environment.GetEnvironmentVariable("TENCENTCLOUD_SECRET_KEY")
};
CvmClient client = new CvmClient(cred, "ap-guangzhou");
DescribeInstancesRequest req = new DescribeInstancesRequest();
DescribeInstancesResponse resp = client.DescribeInstancesSync(req);
Console.WriteLine(AbstractModel.ToJsonString(resp));
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}

更多示例

更多示例请参见 github TencentCloudExamples 目录。

同步调用与异步调用

新版本 SDK 中同时提供了异步接口和同步接口,同步接口统一在异步接口之后添加了Sync后缀,在上述代码中已有样例。

注意:

在示例中由于是控制台应用程序,因此可以使用同步方式调用异步接口,即ConfigureAwait(false).GetAwaiter().GetResult()。在开发 ASP 应用程序,或者 Windows Forms 应用程序时,UI 控件的响应方法中,不能使用同步方式调用异步接口,否则会造成界面停止响应。
解决办法:将 UI 控件的响应方法改为异步,同时要注意同步上下文。另外,由于异步调用立即返回控制权给用户,很容易造成用户多次点击,或者用户进行了一些不期望的操作,程序中应注意此类问题。源码可以参考项目中的 WindowsFormsDemo 项目。

源码可以参考:腾讯云社区专栏文章

相关配置

代理

若在代理的环境下使用 SDK 进行接口调用,则需设置系统环境变量https_proxy(已在示例代码中体现),否则可能出现无法正常调用、抛出连接超时异常的现象。

常见问题

SDK 依赖的 FluentClient 使用的是3.2版本,但这个包目前发布了4.0版本且不兼容低版本,在 nuget 中升级此包到4.0版本会导致无法调用或调用失败等问题。

目录