文档首页 > > 开发指南> 应用侧开发> Java Demo使用说明

Java Demo使用说明

分享
更新时间: 2020/07/14 GMT+08:00

本文档基于调用API接口的代码样例(Java)进行指导,接口信息详见应用侧API参考

准备Java开发环境

本小节以Windows操作系统为例,介绍安装JDK1.8以及安装Eclipse的方法,如果您使用其它类型的开发环境,请根据自己的需要完成部署。

  1. 进入Java JDK官网,下载JDK1.8版本(比如:jdk-8u161-windows-x64.exe),双击进行安装。
  2. 配置Java环境变量。

    1. 右键单击“计算机”,选择“属性”

    2. 点击“高级系统设置”

    3. 点击“环境变量”

    4. 配置系统变量。需配置3个变量:JAVA_HOME、Path、CLASSPATH(不区分大小写)。若变量名已经存在,则点击“编辑”;若变量名不存在,则点击“新建”。一般Path变量存在,JAVA_HOME变量和CLASSPATH变量需要新增。

      JAVA_HOME指明JDK安装路径,配置示例:C:\ProgramFiles\Java\jdk1.8.0_45。此路径下包括lib,bin等文件夹。

      Path变量使系统可以在任何路径下识别Java命令。如果Path变量已经存在,则需在变量值最后添加路径,配置示例:;C:\Program Files\Java\jdk1.8.0_45\bin;C:\Program Files\Java\jdk1.8.0_45\jre\bin。

      两个路径之间需要使用“;”分割,分号是英文半角。

      CLASSPATH为Java加载类(class或lib)路径,只有配置CLASSPATH,Java命令才能识别。配置示:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。

      :路径以“.”开始,表示当前路径。

    5. 选择开始 > 运行,输入“cmd”,执行命令:java -version、java、javac。如果命令可以执行,则说明环境变量配置成功。

  3. 前往IDEA官网,下载IDEA安装包,直接安装到本地即可使用。

导入Demo工程

  1. 下载并解压JAVA语言的接口调用样例。

  2. 打开IDEA,点击Import Project,选中解压demo文件夹中的pom.xml,点击OK。

  3. 设置本地的maven仓库,选择“file-> setting -> Build ->build Tools -> maven” , 将“user setting file”修改为maven的settings.xml文件路径, Local Repository设置为maven本地仓库地址路。

引入jar包

方式一 : 将jar包添加到lib目录,点击IDEA的Project Structure按钮,进入Project Structure界面,点击右边+号,选择添加Jras or directories , 选择javaApiDemo的resource目录,点击“确定”,将resource下的jar包添加到lib目录即可使用。

方式二:使用maven仓库引入jar包。

javaApiDemo中java-sdk-core的jar包属于华为自研jar包,该jar包功能主要作用于AK/SK认证使用,若使用该功能,则需使用华为镜像;若不使用AK/SK认证,则需将pom文件中的java-sdk-core的依赖移除,将com.huawei.demo.apig.SignUtil该类给注释。

  1. 在maven的settings.xml文件中配置用户名和密码。

  2. 配置华为镜像。

获取Token

在访问物联网平台业务接口前,应用服务器需要调用获取IAM用户Token接口鉴权,华为云认证通过后向应用服务器返回鉴权令牌X-Subject-Token

本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“鉴权”接口的调用。

  1. 在IDEA中,选择“JavaApiDemo> src >main>java> com.huawei,.util > Constants.java”,修改TOKEN_BASE_URL、IOTDM_BASE_URL。

    配置说明如下:

    • TOKEN_BASE_URL:填写IAM服务对接地址,即终端节点,请访问IAM地区和终端节点获取。
    • IOTDM_BASE_URL:设备接入服务对接地址,即终端节点,请访问IoTDA地区和终端节点获取。

      不同区域服务的终端节点不同,请根据实际情况获取。例如,您在北京4开通的设备接入服务,请在IoTDA地区和终端节点页面获取北京4的终端节点。

  2. 在导入的样例代码中,选择“JavaApiDemo > src > main>java>com.huawei.demo.auth > Authentication.java”。

    将账户信息修改为自己的账户信息后,右键单击“Authentication.java”,选择“Run Authentication.main()”,运行代码。

  3. 在控制台查看响应消息的打印日志,如果获得Token,说明鉴权成功。

    Token请妥善保存,以便于在调用其它接口时使用。

    如果没有得到正确的响应,请检查全局常量是否修改正确,并排除网络问题。

    注:代码中每次获取新的token时都会优先从文件中获取之前保存的token,如果token失效, 则需将token.text文件删除重新获取。

设备注册(Token认证方式)

在设备接入物联网平台前,应用服务器需要调用此接口在物联网平台注册设备。在设备接入物联网平台时携带设备唯一标识,完成设备的接入认证,接口信息详见API参考文档。

本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解创建设备接口的调用。

  1. 在IDEA中,选择“JavaApiDemo > src > main>java>com.huawei.demo.device > CreateDevice.java”。

    修改“nodeId”、“timeout”、”secret”, “deviceName”, “productId”等参数,请参考创建设备接口文档获取参数说明。

    将获取的token放入X-Auth-Token的请求头中。

  2. 在IDEA中,右键单击“CreateDevice.java”,选择“Run CreateDevice.main()",运行代码。
  3. 在控制台查看响应消息的打印日志,如果所有类型的订阅均获得“201”响应,并且有deviceId返回,则说明注册成功。

查询设备(Token认证方式)

应用服务器需要查询在物联网平台注册的设备详情时,可以调用查询设备接口。

本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“查询设备”接口的调用。

  1. 在IDEA中,选择“JavaApiDemo > src > main>java>com.huawei.demo.device > QueryDeviceList.java",修改对应的参数。

  2. 右键单击"QueryDeviceList",选择Run QueryDeviceList.main() ,运行代码。
  3. 在控制台查看响应消息的打印日志,如果获得“deviceId”,则说明查询成功。

设备注册(AK/SK认证方式)

在访问物联网平台业务接口前,除了使用Token鉴权之外,还支持使用AK/SK认证,本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解AK/SK“鉴权”接口的调用。

  1. 在IDEA中,选择“JavaApiDemo > src > main>java>com.huawei.demo.device > CreateDeviceByAK.java",修改对应的参数,并调用SignUtil.signRequest()方法对请求进行签名。

  2. 在IDEA中,选择“JavaApiDemo > src > main>java>com.huawei.demo.apig> SignUtil.java",在signRequest()方法中修改对应的AK与SK。

  3. 在IDEA中,右键单击“CreateDeviceByAK.java”,选择“Run CreateDeviceByAK.main()",运行代码。
  4. 在控制台查看响应消息的打印日志,如果所有类型的订阅均获得“201”响应,并且有deviceId返回,则说明注册成功。

查询设备(AK/SK认证方式)

应用服务器需要查询在物联网平台注册的设备详情时,调用查询设备接口。

本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“查询设备”接口的调用。

  1. 在IDEA中,选择“JavaApiDemo > src > main>java>com.huawei.demo.device > QueryDeviceListByAK.java",修改对应的参数,并对请求进行签名,且替换签名方法中的AK/SK(参考设备注册AK/SK认证)。

  2. 右键单击"QueryDeviceListByAK",选择Run QueryDeviceListByAK.main() ,运行代码。
  3. 在控制台查看响应消息的打印日志,如果获得“deviceId”,则说明查询成功。

其他接口

请参考API文档完成其他接口业务的开发。

单步调测

为了更直观地查看应用程序发送的消息及物联网平台的响应消息,以下方法使用了IDEA的断点调试方法。

  1. 在最终发出http/https消息的代码处设置断点。例如:在样例代码“HttpsUtil.java”中的“execute”方法设置3个断点(请根据您代码的实际情况打断点)。

  2. 右键单击需要调测的类,例如:“CreateDevice.java(根据您建立的工程类型进行选择)”,选择Debug > CreateDevice.main()
  3. 当程序在断点位置停止运行后,点击“Step Over”进行单步调试。此时可以在“Variables”窗口查看相应变量的内容,包括发送的消息及物联网平台的响应消息。

  4. “Variables”窗口中展开“request”变量,查看请求消息的内容。

    1. 选中“request”变量时,可以在uri内容展示区看到应用程序发送请求的URL;在“entity”中可以看到发送的消息内容。

    2. Token则携带在headerGroup中。

  5. “Variables”窗口中展开“response”变量,查看响应消息的内容。

    在代码样例中,“Authentication.java”之外的类均会先调用鉴权接口。因此,在对“Authentication.java”之外的类进行单步调测时,如果需要重新获取token,则需要程序第二次运行到设置断点的位置时,再查看变量内容。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问