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 HttpClient >-modus in te stellen op Aan ( xConfiguration HttpClient Mode: On ).

  • De systeembeheerder kan het gebruik van HTTP voorkomen door HttpClient in te stellen > Http naar Onwaar toestaan ( 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, kan de systeembeheerder HttpClient > AllowInsecureHTTPS instellen op Aan ( 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.