Makrojen avulla voit lähettää tietoja HTTP(S)-palvelimelle aina kun tarvitset. Voit hallita, mitä dataa lähetetään ja miten ne järjestetään, mikä tekee tietojen mukauttamisesta helppoa käytettäväksi olemassa olevien palvelujen kanssa.

Turvatoimet:

  • HTTP(S)-asiakaspyyntöominaisuus on oletuksena pois käytöstä. Järjestelmänvalvojan on otettava ominaisuus erikseen käyttöön asetuksella HTTPClient > tila to Päällä ( xConfiguration HttpClient Mode: On ).

  • Järjestelmänvalvoja voi estää HTTP:n käytön asettamalla HTTPClient > Salli HTTP to Väärä ( xConfiguration HttpClient AllowHTTP: False ).

  • Järjestelmänvalvoja voi määrittää luettelon HTTP(S)-palvelimista, joille laite saa lähettää tietoja. (Katso xCommand HttpClient Allow Hostname komennot.)

  • Samanaikaisten HTTP(S)-pyyntöjen määrä on rajoitettu.

Tässä artikkelissa mainitut kokoonpanot ovat saatavilla sekä laitteen verkkoliittymästä että API:sta. Komennot ovat saatavilla API:n kautta. Lue Lisäasetukset -artikkeli saadaksesi tietoja verkkokäyttöliittymän ja API:n käyttämisestä.

Luettelo sallituista HTTP(S)-palvelimista

Järjestelmänvalvoja voi käyttää näitä komentoja asettaakseen ja ylläpitääkseen luetteloa enintään kymmenestä sallitusta HTTP(S)-palvelimesta (isännästä):

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

Jos luettelo sisältää palvelinmerkintöjä, voit lähettää vain HTTP(S)-pyyntöjä näille palvelimille. Jos luettelo on kuitenkin tyhjä, voit lähettää pyyntöjä mille tahansa HTTP(S)-palvelimelle.

Sallittujen palvelimien luettelon tarkistus suoritetaan sekä turvattoman (HTTP) että suojatun (HTTPS) tiedonsiirron yhteydessä.

HTTPS ilman varmenteen vahvistusta

Kun pyyntöjä lähetetään HTTPS:n kautta, laite tarkistaa oletusarvoisesti HTTPS-palvelimen varmenteen. Jos HTTPS-palvelimen varmennetta ei löydy kelvolliseksi, saat virheilmoituksen. Laite ei lähetä tietoja kyseiselle palvelimelle.

Suosittelemme käyttämään HTTPS:ää varmenteen vahvistuksen kanssa. Jos varmenteen vahvistaminen ei ole mahdollista, järjestelmänvalvoja voi määrittää HTTPClient > SalliInsecureHTTPS to Päällä ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Tämä mahdollistaa HTTPS:n käytön ilman palvelimen varmenteen vahvistamista.

HTTP(S)-pyyntöjen lähettäminen

Kun HTTP(S)-asiakaspyyntöominaisuus on käytössä, voit lähettää pyyntöjä HTTP(S)-palvelimelle seuraavien komentojen avulla. <method> on joko Post , Put , Patch , Get , tai 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>

Otsikkokenttien lisääminen on valinnaista, ja voit lisätä enintään 20 kenttää.

The AllowInsecureHTTPS Parametrilla on vaikutusta vain, jos järjestelmänvalvoja on sallinut HTTPS:n käytön vahvistamatta palvelimen varmennetta. Jos näin on, voit lähettää tietoja palvelimelle vahvistamatta palvelinvarmennetta, jos parametri on asetettu arvoon True . Jos jätät parametrin pois tai asetat sen arvoon False , tietoja ei lähetetä, jos varmenteen vahvistus epäonnistuu.

The ResposenSizeLimit parametri on suurin hyötykuorman koko (tavuja), jonka laite hyväksyy vastauksena palvelimelta. Jos vastauksen hyötykuorma on suurempi kuin tämä enimmäiskoko, komento palauttaa tilavirheen. Virheilmoitus kertoo, että tiedostokoko on ylitetty. Tällä ei kuitenkaan ole vaikutusta palvelinpuolelle; palvelin on vastaanottanut ja käsitellyt pyynnön oikein.

Käytä ResultBody parametri määrittää, kuinka palvelimen HTTP-vastauksen runko muotoillaan komennon tuloksessa. Sinulla on kolme vaihtoehtoa:

  • None : Älä sisällytä HTTP-vastauksen runkoa komennon tulokseen.

  • Base64 : Base64 koodaa rungon ennen sen sisällyttämistä tulokseen.

  • PlainText : Sisällytä tulokseen tekstin teksti. Jos vastaus sisältää ei-tulostettavia kirjaimia, komento palauttaa tilavirheen ja ilmoittaa, että ei-tulostettavia tietoja on havaittu.

Käytä Timeout parametri asettaaksesi aikakatkaisujakson (sekunteina). Jos pyyntöä ei suoriteta tänä aikana, API palauttaa virheilmoituksen.

Syötä hyötykuorma (data) heti komennon antamisen jälkeen. Kaikki kirjoittamasi, mukaan lukien rivinvaihdot, on osa hyötykuormaa. Kun olet valmis, lopeta rivinvaihdolla ("\n") ja erillisellä rivillä, joka sisältää vain pisteen, jota seuraa rivinvaihto (".\n"). Nyt komento suoritetaan ja tiedot lähetetään palvelimelle.

Esimerkkejä

Viestin runko on JSON molemmissa esimerkeissä. Se voi olla missä tahansa muodossa, riippuen viestejä vastaanottavan palvelun odotetusta muodosta.

Esimerkki 1: IoT-laitteen ohjaus HTTP-postin avulla

Tässä on makrotoiminto, joka sytyttää Philips Hue Bridgeen kytketyn valon:


     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); } 
   

Voit tehdä saman komentorivillä API:n avulla:


     xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 
   

Esimerkki 2: Tietojen lähettäminen valvontatyökaluun HTTP-postin avulla


     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"} . 
   

Lisätietoa

Lisätietoja HTTP-asiakaspyyntöjen käyttämisestä on osoitteessa Räätälöintiopas . Valitse uusin versio.

Cisco-tuki (TAC) ei tue kolmannen osapuolen koodin virheenkorjausta, mukaan lukien makrot. Tarkista https://roomos.cisco.com jos tarvitset apua makrojen ja kolmannen osapuolen koodin kanssa.