Za pomocą makr możesz wysyłać dane do serwera HTTPS, kiedy tylko tego potrzebujesz. Masz kontrolę nad tym, jakie dane są wysyłane i jak są zorganizowane, co ułatwia dostosowanie danych do użytku z istniejącymi usługami.

Środki bezpieczeństwa:

  • Funkcja żądania klienta HTTP(S) jest domyślnie wyłączona. Administrator systemu musi jawnie włączyć funkcję przez ustawienie HttpClient > Tryb na Wł. (xConfiguration HttpClient Mode: On).

  • Administrator systemu może uniemożliwić korzystanie z HTTP ustawiając HttpClient > AllowHTTP na False (xConfiguration HttpClient AllowHTTP: False).

  • Administrator systemu może określić listę serwerów HTTPs, do których może wysyłać dane urządzenie. (Zobacz komendy xCommand HttpClient Allow Hostname).

  • Liczba jednoczesnych żądań HTTP(S) jest ograniczona.

Konfiguracje, o których mowa w tym artykule, są dostępne zarówno z poziomu interfejsu WWW urządzenia, jak i w pliku API. Polecenia są dostępne poprzez API. Przeczytaj artykuł Ustawienia zaawansowane, aby dowiedzieć się, jak uzyskać dostęp do interfejsu WWW i korzystać z interfejsu API.

Lista dozwolonych serwerów HTTPs

Za pomocą tych poleceń administrator systemu może skonfigurować i utrzymywać listę maksymalnie dziesięciu dozwolonych serwerów (hostów) HTTP(S):

  • xCommand HttpClient Zezwól na dodanie nazwy hosta Wyrażenie: <Wyrażenie regularne pasujące do nazwy hosta lub adresu IP serwera HTTPs>

  • xCommand HttpClient Zezwól na wyczyszczenie nazwy hosta

  • xCommand HttpClient Zezwalaj na listę nazw hostów

  • xCommand HttpClient Zezwalaj na nazwę hosta Usuń identyfikator: <id wpisu na liście>

Jeśli lista zawiera wpisy serwerów, możesz wysyłać żądania HTTPs tylko do tych serwerów. Jeśli jednak lista jest pusta, możesz wysyłać żądania do dowolnego serwera HTTPs.

Sprawdzenie listy dozwolonych serwerów odbywa się zarówno przy niezabezpieczonym (HTTP) jak i bezpiecznym (HTTPS) przesyłaniu danych.

HTTPS bez sprawdzania certyfikatu

Podczas wysyłania żądań za pośrednictwem protokołu HTTPS urządzenie domyślnie sprawdza certyfikat serwera HTTPS. Jeśli certyfikat serwera HTTPS nie zostanie uznany za ważny, wyświetlany jest komunikat o błędzie. Urządzenie nie wysyła żadnych danych do tego serwera.

Zalecamy stosowanie protokołu HTTPS z walidacją certyfikatów. Jeśli walidacja certyfikatu nie jest możliwa, administrator systemu może ustawić HttpClient > AllowInsecureHTTPS na Wł. (xConfiguration HttpClient AllowInsecureHTTPS: On). Pozwala to na korzystanie z protokołu HTTPS bez konieczności sprawdzania poprawności certyfikatu serwera.

Wysyłanie żądań HTTPs

Po włączeniu funkcji żądania klienta HTTP(S), możesz użyć następujących poleceń do wysyłania żądań do serwera HTTP(S). <method> to albo Post, Put, Patch, Get lub Delete.

  • xCommand HttpClient <Metoda> [AllowInsecureHTTPS: <True/False>] [Nagłówek: <Tekst nagłówka>] [ResponseSizeLimit: <Maksymalny rozmiar odpowiedzi>] [ResultBody: <None/PlainText/Base64>] [Limit czasu: <Limit limitu czasu>] Adres URL: <adres URL, do którego należy wysłać żądanie>

Dodawanie pól nagłówka jest opcjonalne i możesz dodać maksymalnie 20 pól.

Parametr AllowInsecureHTTPS działa tylko wtedy, gdy administrator systemu zezwolił na korzystanie z HTTPS bez walidacji certyfikatu serwera. Jeśli tak, to możesz wysyłać dane do serwera bez sprawdzania poprawności certyfikatu serwera, jeśli parametr jest ustawiony na True. Jeśli pominiesz ten parametr lub ustawisz go na False, dane nie zostaną wysłane, jeśli sprawdzanie poprawności certyfikatu nie powiedzie się.

Parametr ResposenSizeLimit to maksymalny rozmiar ładunku (w bajtach), który urządzenie akceptuje jako odpowiedź od serwera. Jeżeli ładunek odpowiedzi jest większy niż ten maksymalny rozmiar, polecenie zwraca błąd stanu. Komunikat o błędzie mówi, że maksymalny rozmiar pliku został przekroczony. Nie ma to jednak żadnego wpływu na stronę serwera; serwer otrzymał i przetworzył żądanie prawidłowo.

Użyj parametru ResultBody aby zdecydować jak sformatować treść odpowiedzi HTTP z serwera w wyniku polecenia. Dostępne są trzy opcje:

  • Nic : nie dołączaj treści odpowiedzi HTTP do wyniku polecenia.

  • Baza64 : Base64 koduje treść przed włączeniem jej do wyniku.

  • Zwykły tekst : dołącz treść do wyniku jako zwykły tekst. Jeżeli odpowiedź zawiera niedrukowalne litery, to polecenie zwraca błąd stanu z komunikatem, że napotkano niedrukowalne dane.

Użyj parametru Timeout, aby ustawić limit czasu (w sekundach). Jeśli żądanie nie zostanie ukończone w tym czasie, API zwraca błąd.

Wprowadź payload (dane) zaraz po wydaniu polecenia. Wszystko, co wpiszesz, łącznie z przerwami w linii, jest częścią ładunku. Kiedy skończysz, zakończ linijką ("\n") i oddzielną linijką zawierającą tylko kropkę, po której następuje przerwa (".\n"). Teraz polecenie jest wykonywane, a dane są wysyłane do serwera.

Przykłady

W obu tych przykładach ciało wiadomości to JSON. Może to być dowolny format, w zależności od oczekiwanego formatu usługi, która odbiera wiadomości.

Przykład 1: Sterowanie urządzeniami IoT za pomocą protokołu HTTP Post

Oto funkcja makra, która włącza światło podłączone do mostka Philips Hue:

 funkcja hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Typ zawartości: aplikacja/json'; polecenie var = '{"on": true}'; xapi.command('HttpClient Put', { 'Url': url, 'Nagłówek': nagłówki }, polecenie); } 

Możesz zrobić to samo w wierszu poleceń, używając API:

 xcommand HttpClient Umieść nagłówek: „Typ zawartości: aplikacja/json” Adres URL: „http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state” {”on”:true} . 

Przykład 2: Przesyłanie danych do narzędzia monitorującego przy użyciu protokołu HTTP Post

 Nagłówek postu xcommand HttpClient: „Typ zawartości: aplikacja/json” Adres URL: „https://mymonitoringserver.com/service/devicemonitoring” {„Wiadomość”: „Użytkownik zgłosił problem z tym systemem”, „systemName”: „Sala posiedzeń na 4. piętrze”, „softwareVersion”: „ce9.6.0”, „softwareReleaseDate”: „2018-12-13”, „videoMonitors”: „Dual”} . 

Dalsza informacja

Więcej szczegółów na temat używania żądań klienta HTTP można znaleźć w podręczniku Dostosowywanie. Wybierz najnowszą wersję.

Pomoc techniczna firmy Cisco (TAC) nie obsługuje debugowania kodu innej firmy, w tym makr. Proszę sprawdzić https://roomos.cisco.com jeśli potrzebujesz pomocy z makrami i kodem innych firm.