手把手学IOT服务端API编程[9、批量获取设备状态]|MVP讲堂

简介: 本教程旨在介绍服务器端的API编程接口,基于php脚本的sdk,希望对物联网服务器端有编程需求的有所帮助。阿里云MVP手把手教你!有演示视频,千万别错过!

作者:阿里云MVP洵云


上节回顾:手把手学IOT服务端API编程[8、按设备名查信息]|MVP讲堂


上节介绍按设备名查信息后,只能查询一个设备的信息,实际使用过程中,如果用户打算一次查询多个设备的状态,服务端的API接口也提供了相应的功能,

这一节就来介绍一下这个接口的使用,这个接口需要提供两个参数,一个是产品的key值,一个是设备的名称列表;

接下来我们看一下具体实现;

 

 

1、脚本实现:

我们按照接口的要求,在框架页面上,提供产品的key值和设备名称列表这两个个输入参数框给用户输入,其中名称列表,我们要求用户通过逗号分隔符的形式,

输入一行设备名称列表,通过逗号来分割各个设备名称;

产品KEY:        <input type="text" name="pkey9">

设备名称:        <input type="text" name="devnames9">

 

 

而在实际的实现代码中,我们只需要使用get函数提取这个变量就可以了,其中我们调用了explode函数来讲设备名称列表从字符串分割成名称列表的数组:

$pkey = $_GET["pkey9"];

$devnames = $_GET["devnames9"];

接着引用查询设备列表的接口:

$request = new Iot\BatchGetDeviceStateRequest();

 

 

通过查看BatchGetDeviceStateRequest.php文件,可以知道我们需要调用setProductKey和setDeviceNames两个函数,来给服务端传送产品key值和设备名称;

 

 

 

 

$request->setProductKey($pkey);

$devnames_array=explode(',',$devnames);

$request->setDeviceNames($devnames_array);

 

 

调用通用的网络查询操作后,最后对返回信息进行分析;首先显示常用的requestid和success这两个通用的信息:

 

 

 

 

echo 'RequestId :'.$response->RequestId.'<br>';

echo 'Success :'.$response->Success.'<hr>';

 

 

然后通过一个for循环依次显示每个设备的状态,名称等相关信息:

 

 

echo '设备状态 :'.$response->DeviceStatusList->DeviceStatus[$x]->Status.'<br>';

        echo '设备Id :'.$response->DeviceStatusList->DeviceStatus[$x]->DeviceId.'<br>';

        echo '设备名称 :'.$response->DeviceStatusList->DeviceStatus[$x]->DeviceName.'<br>';

        echo '设备最近在线时间 :'.$response->DeviceStatusList->DeviceStatus[$x]->LastOnlineTime.'<hr>';

       

2、实际测试:

打开浏览器,转到我们框架脚本页面,这里输入我们从控制台得到的产品key值和设备名称列表,运行提交按钮后,可以得到我们要查询设备列表的信息,

和控制台上的信息是完全一致的;

具体向关截图如下:

 

 


timelapse:www.xunyun17.xyz/ioto/step9-BatchGetDeviceStateRequest.mp4


目录
相关文章
|
8月前
|
小程序 安全 API
社区每周丨小程序基础API新增获取设备、系统等多个接口
社区每周丨小程序基础API新增获取设备、系统等多个接口
163 11
|
8月前
|
编解码 API Android开发
深入了解设备交互 API 如何改变我们的生活
深入了解设备交互 API 如何改变我们的生活
|
前端开发 JavaScript API
几种不常用Web API(振动、重力感应、联网状态、系统电量信息、页面可见性、canvas转base64、监听屏幕旋转、元素全屏显示)
navigator对象中有一些不常用的API,以下主要介绍vibrate振动,deviceorientation重力感应,online联网状态,getBattery系统电量信息,visibilitychange页面可见性,toDataURL(canvas转base64),orientationchange监听屏幕旋转和fullScreen元素全屏显示。
几种不常用Web API(振动、重力感应、联网状态、系统电量信息、页面可见性、canvas转base64、监听屏幕旋转、元素全屏显示)
|
JavaScript 数据可视化 物联网
iot studio中使用物联网平台提供的api
iot studio中使用物联网平台提供的api。
324 1
 iot studio中使用物联网平台提供的api
|
存储 Android开发 数据安全/隐私保护
【安卓开发】API23及以上设备访问所有文件
【安卓开发】API23及以上设备访问所有文件
107 0
【安卓开发】API23及以上设备访问所有文件
|
Java API 调度
Java多线程基础(线程与进程的区别,线程的创建方式及常用api,线程的状态)
每一个线程都是一个执行流,都按照自己的顺序执行自己的代码,多个线程之间“同时”(并发并行)的执行多份代码。Java中的线程是以轻量级进程来实现的。
Java多线程基础(线程与进程的区别,线程的创建方式及常用api,线程的状态)
|
API Perl
IP - 射频数据转换器 -05- API使用指南 - ADC状态指示函数
IP - 射频数据转换器 -05- API使用指南 - ADC状态指示函数
306 0
IP - 射频数据转换器 -05- API使用指南 - ADC状态指示函数
|
测试技术 API 数据库
Flink 通过 State Processor API 实现状态的读取和写入
在 1.9 版本之前,Flink 运行时的状态对于用户来说是一个黑盒,我们是无法访问状态数据的,从 Flink-1.9 版本开始,官方提供了 State Processor API 这让用户读取和更新状态成为了可能,我们可以通过 State Processor API 很方便的查看任务的状态,还可以在任务第一次启动的时候基于历史数据做状态冷启动。从此状态对于用户来说是透明的。下面就来看一下 State Processor API 的使用。
Flink 通过 State Processor API 实现状态的读取和写入
EMQ
|
消息中间件 缓存 监控
NanoMQ Newsletter 2022-08|v0.11:MQTT 5.0 + MQTT over QUIC 桥接,新增 HTTP API 监控客户端状态
八月,0.11.0版本发布:增加了MQTT 5.0+MQTT over QUIC桥接模式,新增和修复了对已连接客户端状态进行监控和查询的HTTP API。
EMQ
408 0
NanoMQ Newsletter 2022-08|v0.11:MQTT 5.0 + MQTT over QUIC 桥接,新增 HTTP API 监控客户端状态
|
测试技术 API Android开发
干货|app自动化测试之设备交互API详解
干货|app自动化测试之设备交互API详解