Met macro's kunt u gegevens verzenden naar een HTTP(S)-server wanneer nodig. U hebt controle over welke gegevens worden verzonden en hoe deze worden georganiseerd, waardoor het eenvoudig is om de gegevens aan te passen voor gebruik met bestaande services.

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-modus: Op ).

  • De systeembeheerder kan het gebruik van HTTP voorkomen door HttpClient > AllowHTTP in te stellen op False ( xConfiguration HttpClient AllowHTTP: Onwaar ).

  • De systeembeheerder kan een lijst met HTTP(S)-servers opgeven waar het apparaat gegevens naar mag verzenden. (Zie de opdrachten xCommand HttpClient Hostnaam toestaan .)

  • Het aantal gelijktijdige HTTP(s) aanvragen is beperkt.

De configuraties waarnaar in dit artikel wordt verwezen, zijn zowel beschikbaar vanaf de webinterface van het apparaat als in de API. Opdrachten zijn beschikbaar via 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:

  • xCommand HttpClient toestaan van hostnaam wissen

  • xCommand HttpClient lijst met hostnamen toestaan

  • xCommand HttpClient Allow Hostname Verwijderen-id:

Als de lijst serververmeldingen bevat, kunt u alleen HTTP(S)-verzoeken naar die servers verzenden. Als de lijst echter leeg is, kunt u verzoeken naar elke HTTP(S)-server sturen.

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 de certificaatvalidatie niet mogelijk is, kan de systeembeheerder HttpClient > AllowInsecureHTTPS instellen op Aan ( xConfiguration HttpClient AllowInsecureHTTPS: Op ). Hiermee wordt het gebruik van HTTPS mogelijk zonder het certificaat van de server te valideren.

HTTP(S)-verzoeken verzenden

Van zodra de HTTP(S)-clientverzoekfunctie is ingeschakeld, kunt u de volgende opdrachten gebruiken om verzoeken naar een HTTP(S)-server te sturen. is Post , Put , Patch , Get of Delete .

  • xCommand HttpClient [AllowInsecureHTTPS: ] [Header: ] [ResponseSizeLimit: ] [ResultBody: ] [Timeout: ] URL:

Het toevoegen van kopvelden is optioneel. U kunt maximaal 20 velden toevoegen.

De parameter AllowInsecureHTTPS heeft alleen effect als de systeembeheerder het gebruik van HTTPS zonder validering van het certificaat van de server heeft toegestaan. Als dit het geval is, kunt u de gegevens zonder validering van het servercertificaat verzenden als de parameter is ingesteld op Waar. Als u de parameter weglaat of deze instelt op Onwaar, worden de gegevens niet verzonden als de validering van het certificaat mislukt.

De parameter ResposenSizeLimit is de maximale payloadgrootte (bytes) die het apparaat als antwoord van de server accepteert. 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 parameter ResultBody om te bepalen hoe de hoofdtekst van het HTTP-antwoord van de server in het commandoresultaat moet worden opgemaakt. U hebt drie opties:

  • Geen : Neem de hoofd tekst van het HTTP-antwoord niet op in het opdracht resultaat.

  • Base64 : Base64 Codeer de instantie voordat deze in het resultaat wordt meenemen.

  • Platte tekst : Neem de tekst van het resultaat op als platte tekst. Als het antwoord niet-afdruk bare letters bevat, retourneert de opdracht een status fout bij een bericht met de melding dat niet-afdruk bare gegevens zijn gevonden.

Gebruik de parameter Time-out 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:

 functie hue_command(gegevens) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var-headers = 'Content-Type: toepassing/JSON '; var Command = ' {' on ": True} '; xapi. Command (' HttpClient put ', {' URL ': URL, ' header ': headers}, opdracht); } 

U kunt hetzelfde doen op de opdracht regel met behulp van de API:

 xcommand HttpClient Put Header: "Inhoud-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-berichtkop: "Inhoud-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Een gebruiker heeft een probleem met dit systeem gemeld","systemName":"BoardRoom 4e verdieping","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 https://roomos.cisco.com of u hulp nodig hebt met macro's en code van een derde partij.