Makrolarla, ihtiyaç duyduğunuzda verileri bir HTTP sunucusuna gönderebilirsiniz. Hangi verilerin gönderildiği ve nasıl organize edildiği üzerinde kontrole sahip olduğunuzdan, verileri mevcut hizmetlerle kullanmak üzere uyarlamanız kolaylaşır.

Güvenlik önlemleri:

  • HTTP(S) istemci isteği özelliği, varsayılan olarak devre dışıdır. Bir sistem yöneticisinin HttpClient > Modu olarak ayarlayarak bu özelliği açıkça etkinleştirmesi gerekir. Açık ( xConfiguration HttpClient Modu: Açık ).

  • Sistem yöneticisi, HttpClient > AllowHTTP 'yi Yanlış olarak ayarlayarak HTTP kullanımını engelleyebilir. ( xConfiguration HttpClient AllowHTTP: False ).

  • Sistem yöneticisi, cihazın veri göndermeye izinli olduğu bir HTTP(S) sunucuları listesi belirleyebilir. (Bkz. xCommand HttpClient Ana Bilgisayar Adına İzin Verme komutları.)

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

Bu makalede bahsedilen konfigürasyonlara hem cihazın web arayüzünden hem de API adresinden ulaşılabilir. Komutlara API aracılığıyla ulaşılabilir. Web arabirimine erişim ve API kullanımına dair bilgi edinmek için Gelişmiş Ayarlar makalesini okuyun.

İzin Verilen HTTP(S) Sunucuları Listesi

Sistem yöneticisi bu komutları izin verilen en fazla on HTTP(S) sunucusunu (ana bilgisayarlar) kurmak ve sürdürmek için kullanabilir:

  • xCommand HttpClient Ana Bilgisayar Adına İzin Ver İfade Ekle: <Ana bilgisayar adıyla eşleşen normal ifade veya HTTP(S) sunucusunun IP adresi>

  • xCommand HttpClientAna Bilgisayar Adına İzin Ver Temizle

  • xCommand HttpClientAna Bilgisayar Adına İzin Ver Listesi

  • xCommand HttpClientAna Bilgisayar Adına İzin Ver Kimliği Kaldır <listedeki bir girişin kimliği>

Listede sunucu girişleri varsa, bu sunuculara yalnızca HTTP istekleri gönderebilirsiniz. Ancak liste boşsa istekleri herhangi bir HTTP sunucusuna gönderebilirsiniz.

İzin verilen sunucular listesi kontrolü, hem güvensiz (HTTP) hem de güenli (HTTPS) veri transferi kullanılırken yapılır.

Sertifika doğrulaması olmayan HTTPS

HTTPS üzerinden istekler gönderirken cihaz varsayılan olarak HTTPS sunucusunun sertifikasını kontrol eder. HTTPS sunucusu sertifikasının geçerli olmadığı görüşürse, bir hata mesajı alırsınız. cihaz bu sunucuya hiçbir veri göndermez.

HTTPS'yi sertifika doğrulaması ile kullanmanızı öneririz. Sertifika doğrulaması mümkün değilse sistem yöneticisi HttpClient > AllowInsecureHTTPS 'yi Açık ( xConfiguration HttpClient AllowInsecureHTTPS: Açık ) olarak ayarlayabilir. Bu, sunucu sertifikasını doğrulamadan HTTPS kullanımına izin verir.

HTTP isteklerini gönderme

HTTP(S) istemci isteği özelliği etkinleştirildiğinde, aşağıdaki komutları bir HTTP(S) sunucusuna istek göndermek için kullanabilirsiniz: <method>; Post, Put, Patch, Get veya Delete'dir.

  • xCommand HttpClient <Yöntem> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maksimum yanıt boyutu>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Zaman aşımı süresi>] Url: <isteğin gönderileceği URL>

Başlık alanları eklemek isteğe bağlıdır ve en fazla 20 alan ekleyebilirsiniz.

GüvensizHTTPS'yeİzinVer parametresi, yalnızca sistem yöneticisinin HTTPS'nin sunucu sertifikası doğrulanmadan kullanımına izin vermesi durumunda etkili olur. İzin verildiyse, parametrenin Doğru olarak ayarlanması durumunda sunucu sertifikasını doğrulamadan sunucuya veri gönderebilirsiniz. Parametreyi dışarıda bırakır veya Yanlış olarak ayarlarsanız, sertifika doğrulamasının başarısız olması durumunda veri gönderilmez.

ResposenSizeLimit parametresi, cihazın sunucudan bir yanıt olarak kabul ettiği maksimum yük boyutudur (bayt). Yanıt yükü bu maksimum boyuttan daha büyükse, komut, bir durum hatası döndürür. Hata mesajında maksimum dosya boyutunun aşıldığı belirtilir. Ancak, bunun sunucu tarafında hiçbir etkisi yoktur; sunucu, isteği doğru şekilde alıp işlemiştir.

Komut sonucunda sunucudan gelen HTTP yanıtı gövdesinin nasıl biçimlendirileceğine karar vermek için ResultBody parametresini kullanın. Üç seçeneğiniz vardır:

  • None: HTTP yanıtının gövdesi komut sonucuna eklenmez.

  • Base64: Base64, gövdeyi sonuca eklemeden önce kodlar.

  • PlainText: Gövde, sonucun içine düz metin olarak eklenir. Yanıtta yazdırılamayan harfler varsa, komut yazdırılamayan verilerle karşılaşıldığını belirten bir mesaj ile durum hatası döndürür.

Zaman aşımı süresini (saniye) ayarlamak için Timeout parametresini kullanın. Bu süre içinde istek tamamlanmazsa, API bir hata döndürür.

Komutu verdikten hemen sonra veri yükünü (veriyi) girin. Satır sonu da dahil, girdiğiniz her şey veri yükünün bir parçasıdır. Bitirdiğinizde, bir satır sonu (“\n”) ve yalnızca ardından bir satır sonu gelen bir nokta içeren ayrı bir satır (“.\n”) ile sonlandırın. Böylece komut çalıştırılır ve veri sunucuya gönderilir.

Örnekler

Mesaj ana metni her iki örnekte de JSON'dır. Mesajları alan hizmetin beklenen biçimine bağlı olarak,, bu herhangi bir biçimde olabilir.

Örnek 1: HTTP Post kullanarak IOT cihaz denetimi

İşte, Philps Hue Bridge'e bağlı bir ışığı açan bir makro işlevi:

 function hue_command(veri) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var başlıkları = 'İçerik Türü: uygulama/json'; var komut = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Başlık': başlıklar }, komut); } 

API kullanarak aynısını komut satırında da yapailirsiniz.

 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 Gönderi Başlığı: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Bir kullanıcı bu sistemle ilgili bir sorun bildirdi""systemName":"BoardRoom 4th Floor""softwareVersion": "ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Ek Bilgiler

Özelleştirme kılavuzu içerisinde HTTP istemci isteklerinin nasıl kullanılacağına dair daha fazla bilgi bulabilirsiniz. En güncel sürümü seçin.

Cisco desteği (TAC) makrolar da dahil, üçüncü taraf kodunda hata ayıklamayı desteklemez. Makrolar ve üçüncü taraf kodlarla ilgili yardıma ihtiyacınız varsa lütfen https://roomos.cisco.com seçeneğini işaretleyin.