tencent cloud

文档反馈

.NET

最后更新时间:2021-08-10 16:14:49

    简介

    • 欢迎使用腾讯云开发者工具套件(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 即可。

    方式二、通过源码安装

    前往 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", "SecretKey"};
                    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版本会导致无法调用或调用失败等问题。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持