上節介紹按裝置名查資訊後,隻能查詢一個裝置的資訊,實際使用過程中,如果使用者打算一次查詢多個裝置的狀态,服務端的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