Makrolarla, gerektiğinde bir HTTP (S) sunucusuna veri gönderebilirsiniz. Hangi verilerin gönderildiğini ve nasıl organize edildiğini kontrol edebilirsiniz, bu da verileri mevcut hizmetlerle kullanılmak üzere uyarlamayı kolaylaştırır.
Güvenlik önlemleri:
-
HTTP (S) istemci isteği özelliği varsayılan olarak devre dışı bırakılmıştır. Bir sistem yöneticisi,
Mo du: Açık) olarak ayarlayarak özelliği açıkça etkinleştirmelidir. -
Sistem yöneticisi, AllowHTTP: Fal se).
-
Sistem yöneticisi, cihazın veri göndermesine izin verilen HTTP (S) sunucularının bir listesini belirleyebilir. (Bkz.
XCommand HttpClient Ana Bilgisayar Adına İzin Ver komutları.) -
Eşzamanlı HTTP (S) isteklerinin sayısı sınırlıdır.
Bu makalede atıfta bulunulan yapılandırmalar hem cihazın web arayüzünden hem de API'den edinilebilir. Komutlar API aracılığıyla kullanılabilir. Web arayüzüne nasıl erişileceği ve API'yi kullanma hakkında bilgi için Gelişmiş Ayarlar makal esini okuyun.
İzin Verilen HTTP (S) Sunucularının Listesi
Sistem yöneticisi, izin verilen on adede kadar HTTP (S) sunucusu (ana bilgisayar) listesini oluşturmak ve sürdürmek için bu komutları kullanabilir:
-
XCommand HttpClient Ana Bilgisayar Adı Ekleme İfadesine İzin Ver:<Regular expression that matches the host name or IP address of the HTTP (S) server> -
XCommand HttpClient Ana Bilgisayar Adına İzin Ver Temizle -
XCommand HttpClient Ana Bilgisayar Adı Listesine İzin Verme -
XCommand HttpClient Ana Bilgisayar Adına İzin Ver Kimliği Kaldır:<id of an entry in the list>
Liste sunucu girişleri içeriyorsa, yalnızca bu sunuculara HTTP (S) istekleri gönderebilirsiniz. Ancak liste boşsa herhangi bir HTTP (S) sunucusuna istek gönderebilirsiniz.
İzin verilen sunucular listesine karşı kontrol, hem güvensiz (HTTP) hem de güvenli (HTTPS) veri aktarımı kullanılırken gerçekleştirilir.
Sertifika doğrulaması olmadan HTTPS
HTTPS üzerinden istek gönderirken, cihaz varsayılan olarak HTTPS sunucusunun sertifikasını kontrol eder. HTTPS sunucu sertifikasının geçerli olmadığı tespit edilirse bir hata iletisi alırsınız. Cihaz o sunucuya herhangi bir veri göndermiyor.
Sertifika doğrulama ile HTTPS kullanmanızı öneririz. Sertifika doğrulaması mümkün değilse, sistem yöneticisi
Açık).
Bu, sunucunun sertifikasını doğrulamadan HTTPS kullanımına izin verir.
HTTP (S) istekleri gönderme
HTTP (S) istemci isteği özelliği etkinleştirildikten sonra, HTTP (S) sunucusuna istek göndermek için aşağıdaki komutları kullanabilirsiniz.
<method>Gönderme
,
P ut,
Y
ama
, Get
veya
Delete şeklindedir
.
-
XCommand HttpClient [AllowInsecureHTTPS:] [Başlık:] [ResponseSizeLimit:] [ResultBody:] [Zaman Aşımı:] Url:<Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>
Başlık alanları eklemek isteğe bağlıdır ve en fazla 20 alan ekleyebilirsiniz.
AllowInsecureHTTPS
parametresi yalnızca sistem yöneticisi sunucunun sertifikasını doğrulamadan HTTPS kullanımına izin verdiyse etki eder. Eğer öyleyse, parametre
True
olarak ayarlanmışsa sunucu sertifikasını doğrulamadan sunucuya veri gönderebilirsiniz. Parametreyi dışarıda bırakırsanız veya Yanlış olarak
ayar
larsanız, sertifika doğrulaması başarısız olursa veri gönderilmez.
RespoSenSizeLimit
parametresi, cihazın sunucudan yanıt olarak kabul ettiği maksimum yük boyutudur (bayt). Yanıt yükü bu maksimum boyuttan büyükse, komut bir durum hatası döndürür. Hata mesajı, maksimum dosya boyutunun aşıldığını söylüyor. Ancak, bunun sunucu tarafında bir etkisi yoktur; sunucu isteği düzgün bir şekilde aldı ve işledi.
Komut sonucunda sunucu
dan gelen HTTP yanıtının gövdesinin nasıl biçimlendirileceğine karar vermek için result Body
parametresini kullanın. Üç seçeneğiniz var:
-
Yok: HTTP yanıtının gövdesini komut sonucuna dahil etmeyin. -
Base64: Base64, sonuca dahil etmeden önce gövdeyi kodlar. -
Düz Metin: Gövdeyi sonuca düz metin olarak dahil edin. Yanıt yazdırılamayan harfler içeriyorsa komut, yazdırılamayan verilerle karşılaşıldığını belirten bir iletiyle birlikte bir durum hatası döndürür.
Zaman aşımı
periyodu (saniye) ayarlamak için Zaman Aşımı
parametresini kullanın. İstek bu süre içinde tamamlanmazsa, API bir hata döndürür.
Komutu verdikten hemen sonra yükü (veri) girin. Satır sonları da dahil olmak üzere girdiğiniz her şey yükün bir parçasıdır. İşiniz bittiğinde, bir satır sonu (“\n”) ve sadece bir nokta içeren ayrı bir satırla bitirin ve ardından bir satır sonu (”. \ n”). Şimdi komut yürütülür ve veriler sunucuya gönderilir.
Örnekler
Her iki örnekte de mesajın gövdesi JSON'dur. Mesajları alan hizmetin beklenen biçimine bağlı olarak herhangi bir format olabilir.
Örnek 1: HTTP Post kullanarak IoT cihaz kontrolü
İşte bir Philips Hue Köprüsüne bağlı bir ışığı açan bir makro işlevi:
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ında aynısını yapabilirsiniz:
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 bir izleme aracına veri 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
Özel leştirme kılavuzunda HTTP istemci isteklerinin nasıl kullanılacağı hakkında daha fazla bilgi edinin . En son sürümü seçin.
Cisco desteği (TAC), makrolar da dahil olmak üzere üçüncü taraf kodlarının hata ayıklamasını desteklemez. Makrolar ve üçüncü taraf kodlarıyla ilgili yardıma ihtiyacınız varsa lütfen https://roomos.cisco.com adresini kontrol edin.