Makroları kullanarak, verileri istediğiniz zaman bir HTTP(S) sunucusuna gönderebilirsiniz. Hangi verileri göndereceklerini seçebilir ve istediğiniz gibi yapılandırabilirsiniz. Bu şekilde yaparak, verileri zaten kurulu olan bir hizmete adapteabilirsiniz.

Güvenlik önlemi:

  • HTTP(S) istemci isteği özelliği varsayılan olarak devre dışıdır. Sistem yöneticisi, HttpClient > Modu' > özelliği açık bir şekilde etkinleştirmesi gerekir ( xConfiguration HttpClient Mode: On ).

  • Sistem yöneticisi, HttpClient > HTTP'nın Yanlışa İzin Ver( ayarını > HTTP kullanımını önlenebilir xConfiguration HttpClient AllowHTTP: False ).

  • Sistem yöneticisi, cihazın verileri göndermesine izin verilen HTTP(S) sunucularının listesini belirtebilirsiniz. (Bkz. xCommand HttpClient Allow Hostname komutlar.)

  • Eş zamanlı HTTP(S) isteklerinin sayısı sınırlıdır.

Bu makalede adlandırılan yapılandırmalara hem cihazın web arayüzünden hem de API'den erişilebilir. Komutlar, API'de kullanılabilir. Web arayüzüne erişme ve API'yi kullanma hakkında bilgi için Gelişmiş Ayarlar makalesini okuyun.

İzin Verilen HTTP(ler) Sunucularının Listesi

Sistem yöneticisi, izin verilen on HTTP(S) sunucusu (toplantı sahibi) listesini ayarlamak ve korumak için bu komutları kullanabilir:

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

Liste boş olmazsa HTTP(S) isteklerini yalnızca listenin sunucularına gönderebilirsiniz. Liste boşsa istekleri herhangi bir HTTP sunucusuna gönderebilirsiniz.

İzin verilen sunucuların listesine karşı kontrol, hem güvenli olmayan (HTTP) hem de veri güvenli (HTTPS) aktarımı kullanılırken gerçekleştirilir.

Sertifika Doğrulaması Olmadan HTTPS

HTTPS üzerinden istek gönderirken, cihaz HTTPS sunucusunun sertifikasını varsayılan olarak kontroler. HTTPS sunucu sertifikasının geçerli bulunamıyorsa bir hata mesajı alırsınız. Cihaz, bu sunucuya herhangi bir veri göndermez.

Sertifika doğrulaması ile HTTPS kullanımı önerilir. Sertifika doğrulaması mümkün olmazsa sistem yöneticisi HttpClient > AllowInsecureHTTPS'i On olarak ayar set olabilir . xConfiguration HttpClient AllowInsecureHTTPS: On ). Bu, sunucunun sertifikasını doğrulamadan HTTPS kullanımını sağlar.

HTTP(ler) İstekleri Göndererek

HTTP(S) istemci isteği özelliği etkinleştirildikten sonra, istekleri http(S) sunucusuna göndermek için aşağıdaki komutları kullanabilirsiniz. <method> şu ya da bu şekildedir: Post , Put , Patch , Get , veya 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>

Üstbilgi alanlarını eklemek isteğe bağlıdır, ancak 20 alan kadar eklemeniz gerekir.

Bu işaret AllowInsecureHTTPS parametrenin bir etkisi, ancak sistem yöneticisi sunucunun sertifikasını doğrulamadan HTTPS kullanımına izin verdiyseniz etkili olur. Bu olursa, parametre şu şekilde ayarlanmışsa sunucu sertifikasını doğrulamadan sunucuya veri gönderebilirsiniz: True . Parametreyi bırakır veya farklı bir parametreye False , sertifika doğrulaması başarısız olursa veri gönderilmez.

Bu işaret ResposenSizeLimit parametre, cihazın sunucudan yanıt olarak kabul eden maksimum yük boyutu (bayt) olur. Yanıt yükü bu maksimum boyuttan fazlasa komut bir durum hatası döndürür. Hata mesajı, maksimum dosya boyutunun aşıldı olduğunu belirtiyor. Bununla birlikte, bunun sunucu tarafında etkisi yoktur; sunucusu isteği aldı ve isteği düzgün şekilde işledi.

Düzen seçenekleri arasında geçiş yapmak için ResultBody komut sonucunda sunucudan HTTP yanıtının gövdesini biçimlendirmeye karar verme parametresi. Üç seçeneğiniz vardır:

  • None : Komut sonucu http yanıtının gövdesini dahil etme.

  • Base64 : Base64, sonucu dahilmeden önce gövdeyi kodlar.

  • PlainText : Sonuçta gövdeyi düz metin olarak girin. Yanıt yazdırılamaz harfler içeriyorsa, komut yazdırılamaz verilerle karşılaşıldı mesajının olduğu bir durum hatası döndürür.

Düzen seçenekleri arasında geçiş yapmak için Timeout zaman aşımı süresi (saniye) ayarlama parametresini kullanın. İstek bu dönemde tamamlanmazsa API bir hata döndürür.

Komutu verdikten hemen sonra yükünü (verileri) girin. Satır sonları dahil olmak üzere herhangi bir şey girdiyebilirsiniz. Bitirince, bir satır sonu ("\n") ve yalnızca bir nokta ve ardından bir satır sonu (".\n") içeren ayrı bir hattı bitirin. Artık komut yürütülür ve veriler sunucuya gönderilir.

Örnekler

Bu örneklerin her ikisinde de mesajın gövdesi JSON'dur. Mesajları alan hizmetin beklenen biçimine bağlı olarak herhangi bir biçim olabilir.

Örnek 1: HTTP Post'ı kullanarak IoT cihazı kontrolü

Bir Zaman Köprüsü'ne bağlı bir ışıkyı Ayaslı Köprü'ye bağlanan bir makro işlevi buradadır:


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

API'yi kullanarak komut satırına aynını kullanabilirsiniz:


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

Örnek 2: HTTP Post'ı kullanarak verileri izleme aracına gönderme


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

Daha Fazla Bilgi

Özelleştirme kılavuzunda HTTP istemci isteklerinin nasıl kullanımıyla ilgili daha fazla ayrıntı bulabilirsiniz . En son sürümü seçin.

Cisco desteği (TAC), makrolar dahil üçüncü taraf kodun hata ayıklamasını desteklemez. Makro ve üçüncü taraf kodla ilgili yardıma ihtiyacınız varsa lütfen Cisco İş Birliği Geliştirici topluluğuyu kontrol edin. Ayrıca, bu sitede birçok geliştirici ve entegratörü kaynağı vardır.