Ez a funkció lehetővé teszi tetszőleges http(S) -kérelmek küldését egy tábláról, szobáról vagy íróasztali eszközről egy http(S) -szerverre. Továbbá a készülék megkapja a szerver által visszaküldött választ. A készülék támogatja a Post, Put, Folt, Get és Delete metódusokat.
Makrók használatával bármikor küldhet adatokat HTTP(S) -kiszolgálóra. Kiválaszthatja az elküldendő adatokat, és tetszés szerint strukturálhatja őket. Ily módon az adatokat egy már meglévő szolgáltatáshoz igazíthatja.
Biztonsági intézkedések:
A http(S) klienskérelem funkció alapértelmezés szerint le van tiltva. A rendszergazdának kifejezetten engedélyeznie kell ezt a funkciót a HttpClient > Mode (
(xConfiguration HttpClient Mode: On
).A rendszergazda megakadályozhatja a http használatát, ha a HttpClient
Hamis (xConfiguration HttpClient AllowHTTP: False
).A rendszergazda megadhatja azoknak a http(S) -kiszolgálóknak a listáját, amelyekre az eszköz adatokat küldhet. (Lásd:
xCommand HttpClient Allow Hostname
parancsokat.)Az egyidejű HTTP(S) -kérelmek száma korlátozott.
Az ebben a cikkben említett konfigurációk mind a készülék webes felületén, mind az API-ban elérhetők. A parancsok az API-ban érhetők el. Olvassa el a Speciális beállítások című szakaszt arról, hogyan érheti el a webes felületet, és hogyan használhatja az API-t.
Az engedélyezett http(S) -kiszolgálók listája
A rendszergazda ezekkel a parancsokkal legfeljebb tíz engedélyezett http(S) kiszolgálót (állomást) állíthat be és tarthat fenn:
xCommand HttpClient Allow Hostname Add Expression: <Regular expression that matches the host name or IP address of the HTTP(S) server>
xCommand HttpClient Allow Hostname Clear
xCommand HttpClient Allow Hostname List
xCommand HttpClient Allow Hostname Remove Id: <id of an entry in the list>
Ha a lista nem üres, akkor csak a listában szereplő kiszolgálóknak küldhet http(S) -kérelmeket. Ha a lista üres, a kéréseket bármelyik http(S) -szerverre elküldheti.
Az engedélyezett kiszolgálók listájával való összevetés nem biztonságos (HTTP) és biztonságos (HTTPS) adatátvitel esetén egyaránt megtörténik.
HTTPS tanúsítvány érvényesítése nélkül
Ha a kéréseket HTTPS-en keresztül küldi, a készülék alapértelmezés szerint ellenőrzi a HTTPS-kiszolgáló tanúsítványát. Ha a https szerver tanúsítványa nem érvényes, hibaüzenet jelenik meg. Az eszköz nem küld adatokat a szerverre.
Javasoljuk, hogy a HTTPS-t tanúsítvány-ellenőrzéssel használja. Ha a tanúsítvány érvényesítése nem lehetséges, a rendszergazda beállíthatja a
xConfiguration HttpClient AllowInsecureHTTPS: On
). Ez lehetővé teszi a https használatát a szerver tanúsítványának ellenőrzése nélkül.
HTTP(S) -kérelmek küldése
A http(S) klienskérelem engedélyezése után a következő parancsokkal küldhet kéréseket a http(S) -kiszolgálónak.
<method>
vagy
Post
,
Put
,
Patch
,
Get
, vagy
Delete
.
xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximum response size>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Url: <URL to send the request to>
Fejlécmezők hozzáadása nem kötelező, de akár 20 mezőt is hozzáadhat.
Az
AllowInsecureHTTPS
paraméternek csak akkor van hatása, ha a rendszergazda engedélyezte a https használatát a szerver tanúsítványának érvényesítése nélkül. Ha igen, akkor a szerver tanúsítványának érvényesítése nélkül küldhet adatokat a szerverre, ha a paraméter értéke
True
. Ha kihagyja a paramétert, vagy beállítja
False
, az adatok nem kerülnek elküldésre, ha a tanúsítvány érvényesítése sikertelen.
Az
ResposenSizeLimit
paraméter az a maximális hasznos teher (bájt), amelyet a készülék a szerver válaszaként elfogad. Ha a választerhelés 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 szerveroldalra; a szerver megfelelően fogadta és feldolgozta a kérést.
Használja a
ResultBody
paraméterrel eldöntheti, hogyan formázza a http válasz törzsét a kiszolgálóról a parancseredményben. Három lehetőség közül választhat:
None
: Ne vegye fel a http válasz törzsét a parancs eredményébe.Base64
: Base64 kódolja a testet, mielőtt belefoglalná az eredménybe.PlainText
: A szövegtörzs egyszerű szövegként szerepeljen az eredményben. Ha a válasz nem nyomtatható betűket tartalmaz, a parancs állapothibát ad vissza, és azt az üzenetet küldi, hogy nem nyomtatható adatok kerültek elő.
Használja a
Timeout
paraméter az időtúllépés időtartamának (másodperc) beállításához. Ha a kérés ezen időszak alatt nem kerül teljesítésre, az API hibát ad vissza.
Adja meg a hasznos terhelést (adatokat) közvetlenül a parancs kiadása után. Minden, amit belépsz, 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 olyan külön vonallal, amely csak egy pontot, majd egy sortörést („.\n”) tartalmaz. Most a parancs végrehajtódik, és az adatok elküldésre kerülnek a szerverre.
Példák
Az üzenet törzse mindkét példában a JSON. Ez lehet bármilyen formátum, attól függően, hogy a várt formátum a szolgáltatás, amely megkapja az üzeneteket.
1. példa: IoT-eszközvezérlés HTTP-bejegyzés használatával
Itt van egy makró funkció, amely bekapcsolja a Philips Hue-hídhoz 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 az API segítségével:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
2. példa: Adatok küldése egy figyelőeszközre HTTP-bejegyzés használatával
xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"A user reported an issue with this system","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
További információk
A HTTP-ügyfélkérelmek használatával kapcsolatos további részletek a Testreszabási útmutatóban találhatók. 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, köztük a makrók hibakeresését. Ha segítségre van szükséged a makrókkal és a harmadik fél kódjával kapcsolatban, keresd fel a Cisco Collaboration Developer közösségét. Is, sok fejlesztő és integrátor erőforrások ezen az oldalon.