.NET SDK使用示例

更新时间:
复制 MD 格式

本文以 .NET SDK V2.0 为例,演示如何调用云监控2.0(cms20240330)OpenAPI。其他接口的调用方法类似,仅需替换 Request/Response 类型与字段。

环境要求

.NET Framework 4.5 及以上 /.NET Core 2.0 及以上。

安装方式

通过 dotnet CLI 安装:

dotnet add package AlibabaCloud.SDK.Cms20240330 --version 10.0.0

或在项目 .csproj 中加入:

<PackageReference Include="AlibabaCloud.SDK.Cms20240330" Version="10.0.0" />

源码仓库:alibabacloud-csharp-sdk/cms-20240330

配置访问凭据

工程代码建议使用更安全的无 AK 方式,凭据配置方式请参见管理访问凭证。最简单的做法是在系统环境变量中配置:

export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-access-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-access-key-secret>"

Aliyun.Credentials.Client 会按照默认凭据链顺序查找凭据。

完整代码示例

以下示例调用 GetCmsService 接口,查询云监控2.0服务对应产品的开通状态:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;

using Tea;
using Tea.Utils;

namespace AlibabaCloud.SDK.Sample
{
    public class Sample
    {
        /// <summary>
        /// 使用凭据初始化账号 Client
        /// </summary>
        public static AlibabaCloud.SDK.Cms20240330.Client CreateClient()
        {
            // 工程代码建议使用更安全的无 AK 方式。
            Aliyun.Credentials.Client credential = new Aliyun.Credentials.Client();
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
            {
                Credential = credential,
            };
            // Endpoint 请参考 https://api.aliyun.com/product/Cms
            config.Endpoint = "metrics.cn-hangzhou.aliyuncs.com";
            return new AlibabaCloud.SDK.Cms20240330.Client(config);
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.SDK.Cms20240330.Client client = CreateClient();
            AlibabaCloud.SDK.Cms20240330.Models.GetCmsServiceRequest request = new AlibabaCloud.SDK.Cms20240330.Models.GetCmsServiceRequest
            {
                Product = "your_value",
                Service = "your_value",
            };
            Dictionary<string, string> headers = new Dictionary<string, string>() { };
            try
            {
                AlibabaCloud.SDK.Cms20240330.Models.GetCmsServiceResponse resp = client.GetCmsServiceWithOptions(request, headers, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
                Console.WriteLine(JsonConvert.SerializeObject(resp, Formatting.Indented));
            }
            catch (TeaException error)
            {
                // 错误 message
                Console.WriteLine(error.Message);
                // 诊断地址
                Console.WriteLine(error.Data["Recommend"]);
            }
            catch (Exception _error)
            {
                TeaException error = new TeaException(new Dictionary<string, object>
                {
                    { "message", _error.Message }
                });
                Console.WriteLine(error.Message);
                Console.WriteLine(error.Data["Recommend"]);
            }
        }
    }
}

步骤介绍

  1. 初始化配置对象 AlibabaCloud.OpenApiClient.Models.Config。Config 对象存放 Credential、Endpoint 等配置,Endpoint 如示例中的 metrics.cn-hangzhou.aliyuncs.com

    Aliyun.Credentials.Client credential = new Aliyun.Credentials.Client();
    AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
    {
        Credential = credential,
    };
    config.Endpoint = "metrics.cn-hangzhou.aliyuncs.com";
  2. 实例化客户端:

    AlibabaCloud.SDK.Cms20240330.Client client = new AlibabaCloud.SDK.Cms20240330.Client(config);
  3. 创建对应 API 的 Request:

    GetCmsServiceRequest request = new GetCmsServiceRequest();
  4. 设置请求参数:

    request.Product = "your_value";
    request.Service = "your_value";
  5. 通过 client 调用接口:

    GetCmsServiceResponse response = client.GetCmsService(request);
    Console.WriteLine(JsonConvert.SerializeObject(response.Body));
  6. 从 response 读取返回值,例如:

    string requestId = response.Body.RequestId;
  7. 使用 catch 处理报错:

    catch (Exception e)
    {
        Console.WriteLine(e.StackTrace);
    }

更多接口与示例代码可在 OpenAPI 门户 SDK 示例 查看。