A makrók segítségével bármikor küldhet adatokat egy HTTPs-kiszolgálóra. Ön szabályozhatja, hogy milyen adatokat küldjön a rendszer, és hogyan rendezze azokat, így egyszerűen adaptálhatja az adatokat a meglévő szolgáltatásokkal való használatra.
Biztonsági intézkedések:
-
A HTTPs ügyfélkérési funkciója alapértelmezés szerint le van tiltva. A rendszergazdának explicit módon engedélyeznie kell a szolgáltatást a HttpClient ) értékre
állításával. -
A rendszergazda megakadályozhatja a HTTP használatát, ha a HttpClient>AllowHTTP ) értékre állítja .
-
A rendszergazda megadhatja azoknak a HTTPs-kiszolgálóknak a listáját, amelyekre az eszköz adatokat küldhet. (Lásd az
xCommand HttpClient Allow Hostnameparancsokat.) -
Az egyidejű HTTPs-kérések száma korlátozott.
A cikkben említett konfigurációk az eszköz webes felületén és a API formátumban is elérhetők. A parancsok a API hashtaggel érhetők el. Olvassa el a Speciális beállítások cikket a webes felület eléréséről és a API használatáról.
Engedélyezett HTTPs-kiszolgálók listája
A rendszergazda az alábbi parancsokkal állíthat be és tarthat karban egy legfeljebb tíz engedélyezett HTTPs-kiszolgálót (állomást) tartalmazó listát:
-
xCommand HttpClient Allow Hostname Add Expression: <Reguláris kifejezés, amely megegyezik a HTTPs-kiszolgáló állomásnevével vagy IP címével> -
xCommand HttpClient Állomásnév engedélyezése Törlés -
xCommand HttpClient Allow Hostname List -
xCommand HttpClient Allow Hostname Távolítsa el a ID: <ID bejegyzést a listából>
Ha a lista kiszolgálóbejegyzéseket tartalmaz, csak ezekre a kiszolgálókra küldhet HTTPs-kéréseket. Ha azonban a lista üres, bármely HTTPs-kiszolgálónak küldhet kéréseket.
Az engedélyezett kiszolgálók listájának ellenőrzése nem biztonságos (HTTP) és biztonságos (HTTPS) adatátvitel esetén is megtörténik.
HTTPS tanúsítványérvényesítés nélkül
Amikor HTTPS-kapcsolaton keresztül küld kéréseket, az eszköz alapértelmezés szerint ellenőrzi a HTTPS-kiszolgáló tanúsítványát. Ha a HTTPS-kiszolgáló tanúsítványa nem érvényes, hibaüzenet jelenik meg. Az eszköz nem küld adatokat a kiszolgálónak.
Javasoljuk, hogy HTTPS-t használjon tanúsítványérvényesítéssel. Ha a tanúsítvány érvényesítése nem lehetséges, a rendszergazda a HttpClient ( xConfiguration HttpClient AllowInsecureHTTPS: Be ) értékre állíthatja . Ez lehetővé teszi a HTTPS használatát a kiszolgáló tanúsítványának érvényesítése nélkül.
HTTPs-kérések küldése
Miután engedélyezte a HTTPs ügyfélkérési funkciót, a következő parancsokkal küldhet kéréseket egy HTTPs-kiszolgálónak. <metódus> lehet POST , PUT,Patch,Get vagy Delete.
-
xCommand HttpClient <metódus> [AllowInsecureHTTPS: <Igaz/Hamis>] [Fejléc: <Fejléc szövege>] [ResponseSizeLimit: <Válasz maximális mérete>] [ResultBody: <None/PlainText/Base64>] [Időtúllépés: <Időtúllépési időszak>] URL-cím: <URL-cím, amelyre a kérést küldeni szeretné>
A fejlécmezők hozzáadása nem kötelező, és legfeljebb 20 mezőt adhat hozzá.
Az AllowInsecureHTTPS paraméternek csak akkor van hatása, ha a rendszergazda engedélyezte a HTTPS használatát a kiszolgáló tanúsítványának érvényesítése nélkül. Ebben az esetben a kiszolgálói tanúsítvány érvényesítése nélkül is küldhet adatokat a kiszolgálónak, ha a paraméter értéke Igaz . Ha kihagyja a paramétert, vagy hamis értékre állítja, a rendszer nem küld adatokat, ha a tanúsítvány érvényesítése sikertelen.
A ResposenSizeLimit paraméter a hasznos adatok maximális mérete (bájt), amelyet az eszköz válaszként fogad el a kiszolgálótól. Ha a válasz hasznos adata nagyobb, mint ez a maximális méret, a parancs állapothibát ad vissza. A hibaüzenet szerint túllépte a maximális fájlméretet. Ennek azonban nincs hatása a szerver oldalra; A szerver megfelelően fogadta és feldolgozta a kérelmet.
A ResultBody paraméterrel eldöntheti, hogyan formázza a kiszolgálóról érkező HTTP-válasz törzsét a parancs eredményében. Három lehetőség közül választhat:
-
Nincs: Ne foglalja bele a HTTP-válasz törzsét a parancs eredményébe. -
Base64: A Base64 kódolja a testet, mielőtt belefoglalná az eredménybe. -
Egyszerű szöveg: A törzset egyszerű szövegként foglalja bele az eredménybe. Ha a válasz nem nyomtatható betűket tartalmaz, a parancs állapothibát ad vissza egy üzenettel, amely szerint nem nyomtatható adatok találhatók.
A Timeout paraméterrel időtúllépési időszakot (másodpercet) állíthat be. Ha a kérés nem fejeződik be ebben az időszakban, a API hibaüzenetet ad vissza.
Adja meg a hasznos adatokat (adatokat) közvetlenül a parancs kiadása után. Bármi, amit beír, beleértve a sortöréseket is, a hasznos teher része. Ha elkészült, fejezze be egy sortöréssel ("\n") és egy külön sorral, amely csak egy pontot tartalmaz, majd egy sortörést (".\n"). Most a parancs végrehajtásra kerül, és az adatokat elküldi a szervernek.
Példák
Az üzenet törzse mindkét példában JSON. Bármilyen formátumú lehet, az üzeneteket fogadó szolgáltatás várt formátumától függően.
1. példa: IoT-eszközvezérlés HTTP POST használatával
Íme egy makrófunkció, amely felkapcsolja a Philips Hue Bridge készülékhez csatlakoztatott lámpát:
function hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient PUT', { 'Url': url, 'Header': headers }, command); }
Ugyanezt megteheti a parancssorban a API használatával:
xcommand HttpClient PUT Fejléc: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
2. példa: Adatok közzététele figyelőeszközbe HTTP POST használatával
xcommand HttpClient POST Fejléc: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"A felhasználó problémát jelentett ezzel a rendszerrel kapcsolatban","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
További információk
A HTTP-ügyfélkérések használatáról további részleteket a testreszabási útmutatóban talál. Válassza ki a legújabb verziót.
A Cisco támogatás (TAC) nem támogatja a harmadik féltől származó kódok hibakeresését, beleértve a makrókat is. Kérjük, ellenőrizze a https://roomos.cisco.com lehetőséget , ha segítségre van szüksége makrókkal és harmadik féltől származó kódokkal kapcsolatban.