Makrolar ile, gerektiğinde bir HTTPs sunucusuna veri gönderebilirsiniz. Hangi verilerin gönderildiğini ve nasıl düzenlendiğinden siz sorumlu olursunuz ve bu da verileri mevcut hizmetlerle kullanmak üzere basit hale getirir.

Güvenlik önlemleri:

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

  • Sistem yöneticisi HttpClient >AllowHTTP değerini False ( xConfiguration HttpClient AllowHTTP: False ) olarak ayarlayarak HTTP kullanımını engelleyebilir.

  • 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 belirtilen yapılandırmalar, hem aygıtın web arabiriminden hem de API kullanılabilir. Komutlar API kullanı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, yalnızca bu sunuculara HTTP istekleri gönderebilirsiniz. Ancak, liste boşsa, istekleri herhangi bir HTTPs 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 değerini Açık ( xConfiguration HttpClient AllowInsecureHTTPS: On ) olarak ayarlayabilir . Bu, sunucu sertifikasını doğrulamadan HTTPS kullanımına izin verir.

HTTP istekleri gönderiliyor

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 <Method> [AllowInsecureHTTPS: <True/False>] [Üstbilgi: <Header metni>] [ResponseSizeLimit: <Maxim yanıt boyutu>] [ResultMicrosoft: <None/PlainText/Base64>] [Zaman Aşımı: <Timeout süresi>] Url: isteğin gönderilecek <URL>

Üstbilgi 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:

 işlev hue_command(veri) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var üstbilgileri = 'content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Üstbilgi': üstbilgiler }, 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 Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Bir kullanıcı bu sistemde sorun olduğunu bildirdi","systemName":"BoardRoom 4. kat","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 kodu ile ilgili yardıma ihtiyacınız varsa lütfen https://roomos.cisco.com onay kutusunu işaretleyin .