Makrók használatával bármikor küldhet adatokat egy HTTP(S)-kiszolgálónak. Kiválaszthatja, hogy milyen adatokat szeretne elküldeni, és tetszés szerint strukturálhatja őket. Ez lehetővé teszi, hogy az adatokat egy már meglévő szolgáltatáshoz igazítsa.

Biztonsági intézkedések:

  • A HTTP(S)-ügyfélkérés funkció alapértelmezés szerint le van tiltva. A rendszergazdának explicit módon engedélyeznie kell a funkciót úgy, hogy a HttpClient > Mód értékét Be-re állítja (xConfiguration HttpClient Mode: On).

  • A rendszergazda megakadályozhatja a HTTP használatát úgy, hogy a HttpClient > AllowHTTP értékét Hamis-ra állítja (xConfiguration HttpClient AllowHTTP: False).

  • A rendszergazda megadhatja azoknak a HTTP(S)-kiszolgálóknak a listáját, amelyeknek az eszköz adatokat küldhet. (Lásd: xCommand HttpClient Allow Hostname parancsok.)

  • Korlátozott az egyidejű HTTP(S) kérések száma.

Az ebben a cikkben említett konfigurációk az eszköz webinterfészén és az API-ban is elérhetők. A parancsok az API-ban érhetők el. A webinterfész elérését és az API használatát a Speciális beállítások című cikk ismerteti.

Engedélyezett HTTP(S)-kiszolgálók listája

A rendszergazda a következő parancsok segítségével hozhat létre és tarthat fenn legfeljebb 10 engedélyezett HTTP(S)-kiszolgálót (gazdagépet):

  • xCommand HttpClient Allow Hostname Add Expression: <Olyan reguláris kifejezés, amely megfelel a HTTP(S)-kiszolgáló gazdagépnevének vagy IP-címének>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Allow Hostname List

  • xCommand HttpClient Allow Hostname Remove Id: <egy bejegyzés azonosítója a listában>

Ha a lista nem üres, akkor csak a listában található kiszolgálókhoz küldhet HTTP(S)-kéréseket. Ha a lista üres, akkor a kéréseket bármely HTTP(S)-kiszolgálóhoz elküldheti.

Az engedélyezett kiszolgálók listájával való összehasonlítás a nem biztonságos (HTTP) és biztonságos (HTTPS) adatátvitel használatakor is megtörténik.

HTTPS tanúsítvány-ellenőrzés nélkül

Ha HTTPS-en 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üzenetet kap. Az eszköz nem küld semmilyen adatot a kiszolgálónak.

A HTTPS protokoll használatát javasoljuk a tanúsítvány ellenőrzésével. Ha a tanúsítvány ellenőrzése nem lehetséges, a rendszergazda a HttpClient > AllowInsecureHTTPS értékét Be-re állíthatja (xConfiguration HttpClient AllowInsecureHTTPS: On). Ez lehetővé teszi a HTTPS használatát a kiszolgáló tanúsítványának ellenőrzése nélkül.

HTTP(S)-kérések küldése

Ha engedélyezve van a HTTP(S)-ügyfélkérés funkció, akkor a következő parancsok segítségével küldhet egy HTTP(S)-kiszolgálónak egy kérést. A <metódus> Post, Put, Patch, Get vagy Delete lehet.

  • 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>

A fejléc mezők hozzáadása nem kötelező, de legfeljebb 20 mező vehető fel.

Az AllowInsecureHTTPS paraméternek csak akkor van hatása, ha a rendszergazda a kiszolgáló tanúsítványának ellenőrzése nélkül engedélyezte a HTTPS használatát. Ha ez a helyzet, akkor a kiszolgáló tanúsítványának ellenőrzése nélkül is küldhet adatokat a kiszolgálónak, ha a paraméter értéke True. Ha kihagyja vagy False értékre állítja a paramétert, akkor az adatok nem kerülnek elküldésre, ha a tanúsítvány nem megy át az ellenőrzésen.

A ResposenSizeLimit paraméter az eszköz által a kiszolgálótól válaszként elfogadott hasznos adatok maximális mérete (bájtban). Ha a válaszként kapott hasznos adatok nagyobbak, mint a maximális méret, akkor a parancs állapothibát ad vissza. A hibaüzenet azt mondja, hogy túllépte a maximális fájlméretet. Ez azonban nincs hatással a kiszolgáló oldalra; a kiszolgáló megfelelően fogadta és feldolgozta a kérelmet.

A ResultBody paraméterrel határozhatja meg, hogyan kell megformázni a HTTP válasz törzsét a parancs kiszolgálóról érkező eredményében. Három lehetőség közül választhat:

  • None: A parancs eredményében ne szerepeljen a HTTP-válasz törzse.

  • Base64: Base64 kódolással kódolja a törzset, mielőtt az eredménybe illeszti.

  • PlainText: A törzset egyszerű szövegként illeszti az eredménybe. Ha a válasz nem nyomtatható betűket tartalmaz, akkor a parancs olyan állapothibával tér vissza, amelynek üzenete azt közli, hogy a rendszer nem nyomtatható adatokra bukkant.

A Timeout paraméterrel az időtúllépés időtartamát adhatja meg (másodpercben). Ha a kérés nem fejeződik be ennyi idő alatt, akkor az API hibát ad vissza.

A hasznos adatokat közvetlenül a parancs kiadását követően adja meg. Minden, amit beír – még a sortörés is – a hasznos adatok részét képezi. Amikor végzett, fejezze be egy sortöréssel ("\n") és egy külön sorral, amely csak egy pontot és utána egy sortörést tartalmaz („.\n”). Ekkor megtörténik a parancs végrehajtása, és az adatokat a rendszer elküldi a kiszolgálónak.

Példák

Az üzenet törzse mindkét következő példában JSON. Az üzeneteket fogadó szolgáltatás várt formátumának függvényében bármilyen formátumú lehet.

1. példa: IoT eszköz ellenőrzése HTTP Post használatával

Ez itt egy olyan makrófüggvény, amely egy Philips Hue Bridge rendszerhez csatlakoztatott lámpát kapcsol fel:

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 a parancssorban is megteheti az API használatával:

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 feladása figyelési eszközre HTTP Post 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ó

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 (a makrókat is ideértve) hibáinak keresését. Ha segítségre van szüksége a makrókkal és a harmadik féltől származó kóddal kapcsolatban, akkor forduljon a Cisco Collaboration Developer közösséghez. A weboldalon emellett számos fejlesztői és integrátori erőforrás is található.