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 ( HttpClient > Mode (Üzemmód) bekapcsolásával ( xConfiguration HttpClient Mode: On ).

  • A rendszergazda megakadályozhatja a http használatát, ha a HttpClient > AllowHTTP beállítása 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 HttpClient > AllowInsecureHTTPS beállítást Be ( 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.