更新时间:2026-11-10 GMT+08:00
.NET SDK调用示例
本文以调用Kafka的查询所有实例列表(ListInstances)接口为例,介绍华为云.NET SDK的使用方法。
前提条件
- 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK),具体操作请参见新增访问密钥。
- 运行SDK的环境已安装.NET Framework 4.7.2及以上版本,或.NET 8.0及以上版本。
安装SDK
.NET支持通过如下方式安装华为云.NET SDK。以3.1.213版本的.NET SDK为例,最新的SDK版本信息可通过SDK中心查看获取。
- 使用.NET CLI安装SDK
dotnet add package HuaweiCloud.SDK.Core --version 3.1.213 dotnet add package HuaweiCloud.SDK.Kafka --version 3.1.213
- 使用Package Manager安装SDK
Install-Package HuaweiCloud.SDK.Core -Version 3.1.213 Install-Package HuaweiCloud.SDK.Kafka -Version 3.1.213
使用SDK
以下是一个完整的.NET示例,演示如何使用华为云.NET SDK调用查询所有实例列表(ListInstances)接口。
- 如果需要获取其他接口的SDK示例,请参见获取SDK示例代码。
- 本示例中仅提供了基本的接口参数配置说明,更多的进阶配置请参见SDK的用户手册。
- 如果把认证用的AK/SK直接写到代码中会有较大的安全风险,建议在配置文件或环境变量中以密文存放AK/SK,使用时解密,确保安全。本示例中把AK和SK保存为环境变量CLOUD_SDK_AK和CLOUD_SDK_SK,具体操作请参见环境变量。
using System;
using System.Collections.Generic;
using HuaweiCloud.SDK.Core;
using HuaweiCloud.SDK.Core.Auth;
using HuaweiCloud.SDK.Kafka;
using HuaweiCloud.SDK.Kafka.V2;
using HuaweiCloud.SDK.Kafka.V2.Model;
namespace ListInstancesSolution
{
class Program
{
static void Main(string[] args)
{
// ==================== 初始化客户端 ====================
// 从环境变量获取AK/SK,运行前需要提前把AK/SK设置为环境变量
string ak = Environment.GetEnvironmentVariable("CLOUD_SDK_AK");
string sk = Environment.GetEnvironmentVariable("CLOUD_SDK_SK");
const string projectId = "195e********4a708ad9f9********1d";
// 配置认证凭证
var config = HttpConfig.GetDefaultConfig();
config.IgnoreSslVerification = true;
var auth = new BasicCredentials(ak, sk, projectId);
// 初始化客户端
var client = KafkaAsyncClient.NewBuilder()
.WithCredential(auth)
.WithRegion(KafkaRegion.ValueOf("ap-southeast-1"))
.WithHttpConfig(config)
.Build();
// ==================== 构造请求对象 ====================
// 使用SDK中提供的Request对象封装请求参数
var req = new ListInstancesRequest
{
Engine = ListInstancesRequest.EngineEnum.FromValue("kafka")
};
// ==================== 发起请求并处理响应 ====================
// 通过异步客户端调用对应API发起请求,调用成功将返回Response对象,调用失败将抛出对应异常
try
{
var resp = await client.ListInstances(req);
var respStatusCode = resp.HttpStatusCode;
Console.WriteLine(respStatusCode);
}
catch (RequestTimeoutException requestTimeoutException)
{
Console.WriteLine(requestTimeoutException.ErrorMessage);
}
catch (ServiceResponseException clientRequestException)
{
Console.WriteLine(clientRequestException.HttpStatusCode);
Console.WriteLine(clientRequestException.RequestId);
Console.WriteLine(clientRequestException.ErrorCode);
Console.WriteLine(clientRequestException.ErrorMsg);
}
catch (ConnectionException connectionException)
{
Console.WriteLine(connectionException.ErrorMessage);
}
}
}
}