Makrojen avulla voit lähettää tietoja HTTP(S)-palvelimelle aina tarvittaessa. Voit hallita lähetettäviä tietoja ja niiden järjestämistä, joten tietoja on helppo mukauttaa käytettäväksi nykyisten palvelujen kanssa.

Turvatoimet:

  • HTTP(S)-asiakaspyyntöominaisuus on oletusarvoisesti poistettu käytöstä. Järjestelmänvalvojan on nimenomaisesti otettava ominaisuus käyttöön asettamalla HttpClient > Mode arvoksi On ( xConfiguration HttpClient Mode: Osoitteessa ).

  • Järjestelmänvalvoja voi estää HTTP:n käytön asettamalla HttpClient > AllowHTTP arvoksi False ( 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 määritykset ovat käytettävissä sekä laitteen web-käyttöliittymässä että API:ssa. Komennot ovat käytettävissä API:n kautta. Lue Advanced Settings (Lisäasetukset) -artikkelista , miten verkkokäyttöliittymään pääsee käsiksi ja miten API:ta käytetään.

Luettelo sallituista HTTP(S)-palvelimista

Järjestelmänvalvoja voi käyttää näitä komentoja enintään kymmenen sallitun HTTP(S)-palvelimen (isännän) luettelon määrittämiseen ja ylläpitämiseen:

  • xCommand HttpClient Allow Hostname Add Expression:

  • xCommand HttpClient Salli isäntänimi Tyhjennä

  • xCommand HttpClient Salli isäntänimen luettelo

  • xCommand HttpClient Allow Hostname Remove Id:

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

Tarkastus sallittujen palvelimien luettelosta suoritetaan sekä käytettäessä suojaamatonta (HTTP) että suojattua (HTTPS) tiedonsiirtoa.

HTTPS ilman varmenteen validointia

Kun laite lähettää pyyntöjä HTTPS:n kautta, se tarkistaa oletusarvoisesti HTTPS-palvelimen varmenteen. Jos HTTPS-palvelimen varmenteen ei todeta olevan voimassa, saat virheilmoituksen. Laite ei lähetä mitään tietoja kyseiselle palvelimelle.

Suosittelemme HTTPS:n käyttämistä varmenteen vahvistuksen kanssa. Jos varmenteen validointi ei ole mahdollista, järjestelmänvalvoja voi asettaa HttpClient > AllowInsecureHTTPS to On ( xConfiguration HttpClient AllowInsecureHTTPS: Osoitteessa ). 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 otettu käyttöön, voit lähettää pyyntöjä HTTP(S)-palvelimelle seuraavilla komennoilla. on joko Post , Put , Patch , Get tai Delete .

  • xCommand HttpClient [AllowInsecureHTTPS: <True/False>] [Header: ] [ResponseSizeLimit: ] [ResultBody: <None/PlainText/Base64>] [Timeout: ] Url:

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

AllowInsecureHTTPS -parametrilla on vaikutusta vain, jos järjestelmänvalvoja on sallinut HTTPS:n käytön ilman palvelimen varmenteen vahvistamista. Jos näin on, voit lähettää tietoja palvelimelle ilman palvelimen varmenteen vahvistamista, jos parametrin arvoksi on asetettu True . Jos jätät parametrin pois tai asetat sen arvoksi False , tietoja ei lähetetä, jos varmenteen validointi epäonnistuu.

ResposenSizeLimit -parametri on maksimihyötykuorman koko (tavuina), jonka laite hyväksyy palvelimen vastauksena. Jos vastauksen hyötykuorma on tätä enimmäiskokoa suurempi, komento palauttaa tilavirheen. Virheilmoituksen mukaan tiedoston enimmäiskoko on ylitetty. Tällä ei kuitenkaan ole vaikutusta palvelinpuolella; palvelin on vastaanottanut ja käsitellyt pyynnön asianmukaisesti.

Käytä ResultBody -parametria päättämään, miten palvelimen HTTP-vastauksen runko muotoillaan komennon tuloksessa. Sinulla on kolme vaihtoehtoa:

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

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

  • PlainText : Sisällytä runko tulokseen tavallisena tekstinä. Jos vastaus sisältää ei-tulostettavia kirjaimia, komento palauttaa tilavirheen, jossa ilmoitetaan, että ei-tulostettavia tietoja on havaittu.

Aseta aikakatkaisu (sekunneissa) parametrilla Timeout . Jos pyyntöä ei saada valmiiksi tämän ajanjakson aikana, sovellusliittymä palauttaa virheilmoituksen.

Kirjoita hyötykuorma (data) heti komennon antamisen jälkeen. Kaikki kirjoittamasi tiedot, myös rivinvaihdot, ovat osa hyötykuormaa. Kun olet valmis, lopeta rivinvaihto ("\n") ja erillinen rivi, joka sisältää vain pisteen, jota seuraa rivinvaihto (".\n"). Nyt komento suoritetaan ja tiedot lähetetään palvelimelle.

Esimerkkejä

Molemmissa esimerkeissä viestin runko on JSON. 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ää valon, joka on kytketty Philips Hue -siltaan:

 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 seurantatyökaluun HTTP Postin avulla

 xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message": "Käyttäjä ilmoitti ongelmasta tämän järjestelmän kanssa", "systemName": "BoardRoom 4th floor", "softwareVersion": "ce9.6.0", "softwareReleaseDate": "2018-12-13", "videoMonitors": "Dual"} . 

Lisätietoja

Lisätietoja HTTP-asiakaspyyntöjen käytöstä on osoitteessa Mukauttamisopas . Valitse uusin versio.

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