Met deze functie kunt u willekeurige HTTP(s)-verzoeken vanaf een board, ruimte of bureau-apparaat naar een HTTP(S)-server verzenden. Verder ontvangt het apparaat het antwoord dat de server verzendt. Het apparaat ondersteunt de methoden voor plaatsen, plaatsen, patch, installeren en verwijderen.
Met macro's kunt u gegevens naar een HTTP(S)-server verzenden wanneer u wilt. U kunt kiezen welke gegevens u wilt verzenden en deze naar uw eigen wilt in structureren. Zo kunt u gegevens aanpassen aan een reeds bestaande service.
Beveiligingsmaatregelen:
De clientaanvraagfunctie HTTP(S) is standaard uitgeschakeld. Een systeembeheerder moet de functie expliciet inschakelen door
Aan (xConfiguration HttpClient Mode: On
).De systeembeheerder kan het gebruik van HTTP voorkomen door HttpClient in te stellen >
xConfiguration HttpClient AllowHTTP: False
).De systeembeheerder kan een lijst met HTTP(S)-servers opgeven waar het apparaat gegevens naar mag verzenden. (Zie de
xCommand HttpClient Allow Hostname
opdrachten in.Het aantal gelijktijdige HTTP(s) aanvragen is beperkt.
De configuraties die in dit artikel worden genoemd, zijn beschikbaar via de webinterface van het apparaat en in de API. Opdrachten zijn beschikbaar in de API. Lees het artikel Geavanceerde instellingen voor informatie over het openen van de webinterface en het gebruik van de API.
Lijst met toegestane HTTP(s) servers
De systeembeheerder kan deze opdrachten gebruiken om een lijst van maximaal tien toegestane HTTP(S) servers (hosts) in te stellen en bij te houden:
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>
Als de lijst niet leeg is, kunt u HTTP(S)-aanvragen alleen verzenden naar de servers in de lijst. Als de lijst leeg is, kunt u de aanvragen verzenden naar elke HTTP(S)-server.
De controle aan de lijst met toegestane servers wordt zowel uitgevoerd bij gebruik van onveilige (HTTP) als veilige (HTTPS) overdracht van gegevens.
HTTPS zonder certificaatvalidatie
Wanneer verzoeken worden verzonden via HTTPS, controleert het apparaat standaard het certificaat van de HTTPS-server. Als het HTTPS-servercertificaat niet geldig is gevonden, krijgt u een foutbericht. Het apparaat verzendt geen gegevens naar die server.
We raden aan HTTPS te gebruiken met certificaatvalidatie. Als het niet mogelijk is certificaten te valideren,
xConfiguration HttpClient AllowInsecureHTTPS: On
). Hiermee wordt het gebruik van HTTPS mogelijk zonder het certificaat van de server te valideren.
HTTP(s) aanvragen verzenden
Zodra de clientaanvraagfunctie voor HTTP(S) is ingeschakeld, kunt u de volgende opdrachten gebruiken om aanvragen te verzenden naar een HTTP(S)-server.
<method>
is ofwel
Post
,
Put
,
Patch
,
Get
, of
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>
Koptekstvelden toevoegen is optioneel, maar u kunt er maar liefst 20 velden toevoegen.
Het bericht
AllowInsecureHTTPS
heeft alleen een effect als de systeembeheerder het gebruik van HTTPS heeft toegestaan zonder het certificaat van de server te valideren. In dat laatste certificaat kunt u gegevens verzenden naar de server zonder het servercertificaat te valideren als deze parameter is ingesteld op
True
. Als u deze parameter verlaat, of deze in
False
, worden de gegevens niet verzonden wanneer de certificaatvalidatie mislukt.
Het bericht
ResposenSizeLimit
is de maximale payloadgrootte (bytes) die het apparaat accepteert als reactie van de server. Als de respons payload groter is dan deze maximale grootte, geeft de opdracht een statusfout weer. In het foutbericht wordt weergegeven dat de maximale bestandsgrootte is overschreden. Dit heeft echter geen invloed op de serverzijde; de server heeft het verzoek ontvangen en correct verwerkt.
Gebruik de pijl
ResultBody
om te bepalen hoe de body van het HTTP-antwoord van de server in het opdrachtresultaat moet worden opgemaakt. U hebt drie opties:
None
: Neem de body van de HTTP-respons niet op in het opdrachtresultaat.Base64
: Base64 encodeer de body voordat u deze in het resultaat opsyt.PlainText
: Voeg de tekst in het resultaat toe als platte tekst. Als het antwoord niet-afdrukbare letters bevat, geeft de opdracht een statusfout weer met de melding dat er niet-afdrukbare gegevens zijn aangetroffen.
Gebruik de pijl
Timeout
om een time-outperiode (seconden) in te stellen. Als de aanvraag tijdens deze periode niet is voltooid, geeft de API een foutmelding.
Voer de payload (gegevens) in direct nadat u de opdracht hebt uitgegeven. Alles wat u opteert, inclusief regel breaks, maakt deel uit van de payload. Als u klaar bent, sluit u de regelpauze ('\n') en een afzonderlijke regel die slechts een punt bevat, gevolgd door een regelbreed (".\n"). De opdracht wordt nu uitgevoerd en de gegevens worden naar de server verzonden.
Voorbeelden
De tekst van het bericht is JSON in beide voorbeelden. Het kan elke indeling hebben, afhankelijk van de verwachte indeling van de service die de berichten ontvangt.
Voorbeeld 1: IoT-apparaatbeheer met HTTP Post
Hier is een macrofunctie die een licht inlicht dat is verbonden met een Tontoonbrug:
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); }
U kunt hetzelfde doen op de opdrachtregel met behulp van de API:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Voorbeeld 2: Gegevens plaatsen in een controletool met HTTP Post
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"} .
Meer informatie
Meer informatie over het gebruik van HTTP-clientaanvragen vindt u in de handleiding Aanpassen . Kies de nieuwste versie.
Cisco-ondersteuning (TAC) ondersteunt geen oplossingen voor het debugging van code van derden, inclusief macro's. Controleer de Cisco Collaboration Developer community als u hulp nodig hebt met macro's en code van derden. Er zijn ook veel ontwikkelaars- en integratiebronnen beschikbaar op deze site.