设备接入 IoTDA设备接入 IoTDA

更新时间:2021/09/06 GMT+08:00
分享

Java SDK使用指南

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

SDK获取和安装

  1. 安装Java开发环境。

    访问Java官网,下载并说明安装Java开发环境。

    华为云Java SDK支持Java JDK 1.8 及其以上版本。

  2. 安装Maven软件

    通过 Maven 安装项目依赖时使用 Java SDK 的推荐方法,首先您需要在操作系统中下载安装 Maven ,安装完成后您只需在 Java 项目的 pom.xml 文件加入相应的依赖项即可。

  3. 安装Java SDK

    添加Maven依赖:

    <dependency>
        <groupId>com.huaweicloud.sdk</groupId>
        <artifactId>huaweicloud-sdk-core</artifactId>
        <version>[3.0.1-rc, 3.1.0-rc)</version>
    </dependency>
    <dependency>
        <groupId>com.huaweicloud.sdk</groupId>
        <artifactId>huaweicloud-sdk-iotda</artifactId>
        <version>[3.0.1-rc, 3.1.0-rc)</version>
    </dependency>

代码示例(基础版)

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

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

    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.iotda.v5.*;
    import com.huaweicloud.sdk.iotda.v5.region.IoTDARegion;
    import com.huaweicloud.sdk.iotda.v5.model.*;
    
    
    public class ListDevicesSolution {
    
        public static void main(String[] args) {
            String ak = "<YOUR AK>";
            String sk = "<YOUR SK>";
            // 创建认证
            ICredential auth = new BasicCredentials()
                    .withAk(ak)
                    .withSk(sk);
            // 创建IoTDAClient实例并初始化
            IoTDAClient client = IoTDAClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(IoTDARegion.CN_NORTH_4)
                    .build();
            // 实例化请求对象
            ListDevicesRequest request = new ListDevicesRequest();
            try {
                // 调用查询设备列表接口
                ListDevicesResponse response = client.listDevices(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }

    参数

    说明

    ak

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

    sk

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

    IoTDARegion.CN_NORTH_4

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

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

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

推荐您使用API在线调试工具API Explorer ,API Explorer 支持快速调试和检索,调试API的同时,可以根据您的参数实时生成各种开发语言的SDK示例代码,方便您直接根据示例代码使用SDK。

代码示例(标准版/企业版)

华南-广州-友好用户环境暂不支持

应用侧标准版/企业版代码样例相比于基础版本只是增加了三个类(CustomCredentials.java/DerivationAKSKSigner.java/HKDF.java,可点击下载),这三个类用于做标准版/企业版IoTDA的接入认证。应用侧从基础版迁移到标准版只用把这三个类添加进去,不用修改业务侧的代码。以调用查询设备列表接口为例,以下示例代码通过一个完成的工程向您展示使用Java SDK的主要步骤:

  1. 创建认证(不同于基础版)。
  2. 创建IoTDAClient实例并初始化。
  3. 实例化请求对象。
  4. 调用查询设备列表接口。

    package com.iotda.app;
    
    import com.huaweicloud.sdk.core.ClientBuilder;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.core.http.HttpConfig;
    import com.huaweicloud.sdk.core.region.Region;
    import com.huaweicloud.sdk.iotda.v5.IoTDAClient;
    import com.huaweicloud.sdk.iotda.v5.model.ListDevicesRequest;
    import com.huaweicloud.sdk.iotda.v5.model.ListDevicesResponse;
    import com.iotda.app.auth.CustomCredentials;
    
    /**
     * @author HuaweiCloud_SDK
     */
    public class ListDevicesSolution {
    
    
        // 如果是上海一,REGION_ID请填写"cn-east-3";如果是北京四,请填写"cn-north-4";如果是华南广州,请填写"cn-south-4"
        private static final String REGION_ID = "<YOUR REGION ID>";
    
        // ENDPOINT请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址。
        private static final String ENDPOINT = "<YOUR ENDPOINT>";
    
        public static final Region REGION_CN_EAST_3 = new Region(REGION_ID,
                ENDPOINT);
    
        public static void main(String[] args) {
    
            String ak = "<YOUR SK>";
            String sk = "<YOUR SK>";
            String projectId = "<YOUR PROJECTID>";
    
            // 创建认证
            CustomCredentials customCredentials = new CustomCredentials();
            customCredentials.withAk(ak);
            customCredentials.withSk(sk);
            customCredentials.withProjectId(projectId);
            // 创建IoTDAClient实例并初始化
            IoTDAClient client = new ClientBuilder<>(IoTDAClient::new,
                    CustomCredentials.class.getSimpleName()).withCredential(customCredentials)
                    .withRegion(REGION_CN_EAST_3)
                    .withHttpConfig(HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true))
                    .build();
    
            ListDevicesRequest request = new ListDevicesRequest();
            try {
                // 调用查询设备列表接口
                ListDevicesResponse response = client.listDevices(request);
                System.out.println(response.toString());
            } catch (ConnectionException | RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }

    参数

    说明

    REGION_ID

    如果是上海一,REGION_ID请填写"cn-east-3";如果是北京四,请填写"cn-north-4";如果是华南广州,请填写"cn-south-4"

    ENDPOINT

    请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址。

    ak

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

    sk

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

    projectId

    项目ID。获取方法请参见 获取项目ID

分享:

    相关文档

    相关产品