更新时间:2024-10-22 GMT+08:00

.NET SDK使用指南

物联网平台提供C#语言的应用侧SDK供开发者使用。本文介绍.NET SDK的安装和配置,及使用.NET SDK调用应用侧API的示例。

SDK获取和安装

  1. 安装.NET开发环境。

    访问.NET官网,下载并按说明安装.NET开发环境。
    华为云.NET SDK适用于:
    • .NET Framework 4.5 及其以上版本。
    • .NET Standard 2.0 及其以上版本。
    • C# 4.0 及其以上版本。

  2. 使用 .NET CLI 工具安装SDK

    dotnet add package HuaweiCloud.SDK.Core
    dotnet add package HuaweiCloud.SDK.IoTDA

代码示例

以调用查询设备列表接口为例,以下代码示例向您展示使用.NET SDK的主要步骤:

  1. 创建认证。
  2. 创建BasicCredentials实例并初始化。
  3. 实例化请求对象。
  4. 调用查询设备列表接口。

    using System;
    using System.Collections.Generic;
    using HuaweiCloud.SDK.Core;
    using HuaweiCloud.SDK.Core.Auth;
    using HuaweiCloud.SDK.IoTDA;
    using HuaweiCloud.SDK.IoTDA.V5;
    using HuaweiCloud.SDK.IoTDA.V5.Model;
    
    namespace ListDevicesSolution
    {
        class Program
        {
            static void Main(string[] args)
            {
                var listDevicesRequest = ListDevices();
                var res = JsonUtils.Serialize(listDevicesRequest.Result);
                Console.WriteLine(res);
            }
    
           private static async Task<ListDevicesResponse> ListDevices()
            {
                // 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
                // 本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
                var ak = Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_AK", EnvironmentVariableTarget.Machine); 
                var sk = Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_SK", EnvironmentVariableTarget.Machine);
                const string projectId = "<YOUR PROJECTID>";
                // region_id:如果是上海一,请填写"cn-east-3";如果是北京四,请填写"cn-north-4";如果是华南广州,请填写"cn-south-1"
                const string regionId = "<YOUR REGION ID>";
                // endpoint:请在控制台的"总览"界面的"平台接入地址"中查看"应用侧"的https接入地址
                const string endpoint = "<YOUR ENDPOINT>";
    
                // 创建认证
                var auth = new BasicCredentials(ak, sk, projectId);
    
                // 标准版/企业版需要使用衍生算法,基础版请删除该配置
                auth.WithDerivedPredicate(Credentials.DefaultDerivedPredicate);
    
                // 创建IoTDAClient实例并初始化
                var client = IoTDAAsyncClient.NewBuilder()
                        .WithCredential(auth)
                       // 标准版/企业版需要自行创建region 
                        .WithRegion(new Region(regionId, endpoint))
                       // 基础版使用默认 IoTDARegion中的region对象
                       // .WithRegion(IoTDARegion.CN_NORTH_4)
                       // net framework不支持在get请求头中有content-type
                     // 配置是否忽略SSL证书校验, 默认不忽略
                       // .WithHttpConfig(new HttpConfig().WithIgnoreBodyForGetRequest(true).WithIgnoreSslVerification(true)) 
                        .Build();
    
                // 实例化请求对象
                var req = new ListDevicesRequest
                {
                };
    
                try
                {
                    // 调用查询设备列表接口
                    var resp =await client.ListDevicesAsync(req);
                    Console.WriteLine(resp.GetHttpStatusCode());
                }
                catch (RequestTimeoutException requestTimeoutException)
                {
                    Console.WriteLine(requestTimeoutException.ErrorMessage);
                }
                catch (ServiceResponseException clientRequestException)
                {
                    Console.WriteLine(clientRequestException.HttpStatusCode);
                    Console.WriteLine(clientRequestException.ErrorCode);
                    Console.WriteLine(clientRequestException.ErrorMsg);
                }
                catch (ConnectionException connectionException)
                {
                    Console.WriteLine(connectionException.ErrorMessage);
                }
                return new ListDevicesResponse();
            }
        }
    }
    

    参数

    说明

    ak

    您的华为云账号访问密钥ID(Access Key ID)。请在华为云控制台我的凭证 > 访问密钥页面上创建和查看您的 AK/SK。更多信息请查看访问密钥

    sk

    您的华为云账号秘密访问密钥(Secret Access Key)。

    IoTDARegion.CN_NORTH_4

    请替换为您要访问的物联网平台的区域,当前物联网平台可以访问的区域,在SDK代码IoTDARegion.cs中已经定义。

    您可以在控制台上查看当前服务所在区域名称,区域名称、区域和终端节点的对应关系,具体步骤请参考地区和终端节点

更多

项目源码及更多详细的使用指导请参考华为云 .Net 软件开发工具包(.NET SDK)