使用Java API Demo调测(联通用户专用)
本文档基于调用API接口的代码样例(Java)进行指导,接口信息详见API参考文档。
准备Java开发环境
本小节以Windows操作系统为例,介绍安装JDK1.8以及安装Eclipse的方法,如果您使用其它类型的开发环境,请根据自己的需要完成部署。
- 进入Java JDK官网,下载JDK1.8版本(比如:jdk-8u161-windows-x64.exe),双击进行安装。
- 配置Java环境变量。
- 右键单击“计算机”,选择“属性”。
- 点击“高级系统设置”。
- 点击“环境变量”。
- 配置系统变量。需配置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。
注:路径以“.”开始,表示当前路径。
- 选择“cmd”,执行命令:java -version、java、javac。如果命令可以执行,则说明环境变量配置成功。
- 右键单击“计算机”,选择“属性”。
- 前往Eclipse官网,下载Eclipse安装包,直接解压缩到本地即可使用。
导入Demo工程
- 运行Eclipse,选择“Java Project”,点击“Next”。
,在弹出的对话框中选择
- 填写“Project name”,JRE版本选择“JavaSE-1.8”,点击“Finish”。
- 下载API JAVA Demo,并解压。
- 完成解压后,拷贝(Ctrl+C)“Open source components”和“src”文件夹。
- 打开在Eclipse创建的工程,点击选中工程名称,将拷贝的文件粘贴(Ctrl+V)到该工程目录下。
粘贴完成后,“src”目录下的文件存在错误。
- 右键单击工程名称,选择“Open source components”目录下的所有jar文件,点击“OK”。
,在弹出框中选中
导入jar文件之后,“src”目录下文件的错误消失。
应用接入
应用服务器需要调用物联网平台的“鉴权”接口,完成应用服务器和物联网平台的对接,接口信息详见API参考文档。
本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“鉴权”接口的调用。
- 在eclipse中,选择
,修改BASE_URL、APPID、SECRET,然后保存(Ctrl+S)。
配置说明如下:
- BASE_URL:填写应用对接地址/端口号。
- APPID:填写创建应用或项目后获取的应用ID。
- SECRET:填写创建应用或项目后获取的应用密钥。
- 在eclipse中,选择“Authentication.java”,选择 。
,右键单击
- 在控制台查看响应消息的打印日志,如果获得accessToken,说明鉴权成功。
accessToken请妥善保存,以便于在调用其它接口时使用。
如果没有得到正确的响应,请检查全局常量是否修改正确,并排除网络问题。
订阅数据
应用服务器通过调用物联网平台的“订阅平台业务数据”接口,告知物联网平台消息推送的地址和通知类型,比如设备业务数据、设备告警等,接口信息详见API参考文档。
在订阅场景下,物联网平台是客户端,应用服务器是服务端,物联网平台调用应用服务器的接口,并向应用服务器推送消息。在Java API Demo中,使用HTTP协议接收物联网平台的推送消息,不需要在物联网平台加载CA证书。
本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“订阅平台业务数据”接口的调用。
- 在eclipse中,选择“CALLBACK_BASE_URL”,填写回调的IP地址和端口号。
,修改
同一个应用下,所有订阅类型的回调地址的IP和端口必须一致。回调地址的合法性和连通性可以通过开发中心的“订阅调试”功能进行检测。
- 在eclipse中,选择“SubscribeServiceNotification.java”,选择 。
,右键单击
- 在控制台查看响应消息的打印日志,如果所有类型的订阅均获得“201 Created”响应,则说明订阅成功。
如需修改订阅的回调地址,在“Constants.java”类中修改“CALLBACK_BASE_URL”的值,再次运行
“SubscribeServiceNotification.java”即可,新的回调地址会覆盖原来的回调地址。
注册设备
应用服务器通过调用物联网平台的“注册直连设备”接口,在物联网平台添加设备,接口信息详见API参考文档。
本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“注册直连设备”接口的调用。
- 在eclipse中,选择“verifyCode”、“nodeId”、“timeout”、“manufacturerId”、“manufacturerName”、“deviceType”、“model”、“protocolType”的取值。
,修改
配置说明如下:
- “verifyCode/nodeId”需要与真实设备的唯一标识符(IMEI或mac)一致。如果使用的是设备模拟器,则“verifyCode”可以是数字、字母和特殊符号的组合,开发者可自行定义,但不可以与其它设备的verifyCode重复。
- “timeout”单位是“秒”,“timeout”的取值作用如下:
- timeout = 0,注册的设备不会过期。
- timeout > 0,真实设备必须在设置的时间内上线,否则注册的设备会因为过期而被物联网平台删除。如果不携带timeout,则默认过期时间是180秒。
- 在设备绑定成功后,“timeout”不再起作用,注册的设备不会过期。
- “manufacturerId”、“manufacturerName”、“deviceType”、“model”、“protocolType”需要与对应的Profile保持一致。
- 右键单击“RegisterDirectConnectedDevice.java”,选择 。
- 在控制台查看响应消息的打印日志,如果获得“deviceId”,则说明注册成功。
可以在开发中心的
中,查看新注册的设备是否已经显示。此时,注册设备只有设备ID(deviceId)信息。
其他接口
请参考API参考文档完成其他接口业务的开发。
单步调测
为了更直观地查看应用程序发送的消息及物联网平台的响应消息,以下方法使用了Eclipse的断点调试方法。
- 在最终发出http/https消息的代码处设置断点。例如:在样例代码“HttpsUtil.java”中的“executeHttpRequest”方法设置3个断点(请根据您代码的实际情况打断点)。
- 右键单击需要调测的类,例如:“Authentication.java(根据您建立的工程类型进行选择)”,选择 。
- 当程序在断点位置停止运行后,点击“Step Over”进行单步调试。此时可以在“Variables”窗口查看相应变量的内容,包括发送的消息及物联网平台的响应消息。
- 在“Variables”窗口中展开“request”变量,查看请求消息的内容。
- 选中“request”变量时,可以在下方内容展示区看到应用程序发送请求的URL;在“entity”中可以看到发送的消息内容。
- 应用ID(appId)和应用密钥(secret)在“content”字段内,使用十进制的ASCII码表示,需要对照ASCII码表将其转化为字母和符号。
- 选中“request”变量时,可以在下方内容展示区看到应用程序发送请求的URL;在“entity”中可以看到发送的消息内容。
- 在“Variables”窗口中展开“response”变量,查看响应消息的内容。
在代码样例中,“Authentication.java”之外的类均会先调用鉴权接口。因此,在对“Authentication.java”之外的类进行单步调测时,需要程序第二次运行到设置断点的位置时,再查看变量内容。