Makrolarla, ihtiyaç duyduğunuzda bir HTTP(S) sunucusuna veri gönderebilirsiniz. Hangi verilerin gönderildiğini ve nasıl düzenlendiğini kontrol edersiniz, böylece verilerin mevcut hizmetlerle kullanım için uyarlanmasını kolaylaştırırsınız.

Güvenlik önlemi:

  • HTTP(S) istemci isteği özelliği varsayılan olarak devre dışıdır. Bir sistem yöneticisi, HttpClient > Mode ’u On ( xConfiguration HttpClient Mode: üzerinde).

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

  • Sistem yöneticisi, cihazın verileri göndermesine izin verilen HTTP(S) sunucularının listesini belirtebilirsiniz. ( xCommand HttpClient Ana Bilgisayar Adı Izin Ver komutlarına bakın.)

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

Bu makalede bahsedilen yapılandırmalar hem cihazın web arabiriminde hem de API'de mevcuttur. Komutlar API üzerinden 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 Ana Bilgisayar Adına Izin Ver Ifade Ekleme:

  • xCommand HttpClient ana bilgisayar adına Izin ver açık

  • xCommand HttpClient ana bilgisayar listesi Izni ver

  • xCommand HttpClient Ana Bilgisayar Adına Izin Ver Kimliği Kaldır:

Listede sunucu girişleri varsa, bu sunuculara yalnızca HTTP(S) istekleri gönderebilirsiniz. Ancak, liste boş ise herhangi bir HTTP(S) sunucusuna istek 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ı olmayan 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 değilse sistem yöneticisi HttpClient > AllowInsecureHTTPS ’yi Açık ( xConfiguration HttpClient AllowInsecureHTTPS: üzerinde). Bu, sunucunun sertifikasını doğrulamadan HTTPS kullanımını sağlar.

HTTP(S) istekleri gönderme

HTTP(S) istemci isteği özelliği etkinleştirildikten sonra, bir HTTP(S) sunucusuna istek göndermek için aşağıdaki komutları kullanabilirsiniz. Post, Put , Patch, Get veya Delete şeklindedir.

  • xCommand HttpClient [AllowInsecureHTTPS: ] [Header: ] [ResponseSizeLimit: ] [ResultBody: ] [Timeout: ] Url:

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

AllowInsecureHTTPS parametresi, yalnızca sistem yöneticisinin sunucu sertifikasını doğrulamadan HTTPS kullanımına izin vermesi durumunda etkili olur. Kullanılabiliyorsa, parametre True olarak ayarlanmışsa sunucu sertifikasını doğrulamadan sunucuya veri gönderebilirsiniz. Parametreyi dışarıda bırakır veya Yanlış olarak ayarlarsanı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 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.

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:

  • Yok: Komut sonucuna HTTP yanıtının gövdesini eklemeyin.

  • Base64: Base64, sonuca eklemeden önce gövdesini kodlayın.

  • Düz Metin: Metni sonucun içine düz metin olarak dahil edin. Yanıtta yazdırılamayan mektuplar varsa, komut, yazdırılamaz verilerle karşılaşılmasının olduğunu belirten bir mesaj ile durum hatası döndürür.

Zaman aşımı süresini (saniye) ayarlamak için Zaman Aşımı 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(veri) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Content-Type: Uygulama/JSON ' var komutu = ' {"on": true} "; XAPI. Command (' HttpClient put ', {' URL ': URL, ' header ': üstbilgiler}, komut); } 

API 'YI kullanarak komut satırında aynı şekilde yapabilirsiniz:

 xcommand HttpClient Put Header: "Content-Type: application/json" URL'si: "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'si: "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"} . 

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. Makrolar ve üçüncü taraf kodlarla ilgili yardıma ihtiyacınız https://roomos.cisco.com olup olmadığını lütfen kontrol edin.