Bu özellik, bir board, oda veya masa cihazından rastgele HTTP(S) isteklerinin HTTP(S) sunucusuna gönderilsin. Ayrıca cihaz, sunucunun geri gönderdiği yanıtı alır. Cihaz Gönderi, Put, Yama, Get ve Silme yöntemlerini destekler.
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'
xConfiguration HttpClient Mode: On
).Sistem yöneticisi, HttpClient
kullanımını önlenebilirxConfiguration 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
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.