Za pomocą makr można wysyłać dane do serwera HTTP(S) kiedy tylko zajdzie taka potrzeba. Masz kontrolę nad tym, jakie dane są wysyłane i jak są zorganizowane, co ułatwia dostosowanie danych do korzystania z istniejących usług.
Środki bezpieczeństwa:
-
Funkcja żądania klienta HTTP(S) jest domyślnie wyłączona. Administrator systemu musi jawnie włączyć funkcję przez ustawienie
na Wł. (xConfiguration HttpClient Mode: Włącz
). -
Administrator systemu może uniemożliwić korzystanie z HTTP ustawiając
na False (xConfiguration HttpClient AllowHTTP: Fałsz
). -
Administrator systemu może określić listę serwerów HTTP(S), do których urządzenie może wysyłać dane. (Zobacz polecenia
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 API. Polecenia są dostępne poprzez API. Przeczytaj artykuł Ustawienia zaawansowane, aby uzyskać informacje na temat uzyskiwania dostępu do interfejsu internetowego i korzystania z interfejsu API.
Lista dozwolonych serwerów HTTP
Administrator systemu może użyć tych poleceń do skonfigurowania i obsługi listy maksymalnie dziesięciu dozwolonych serwerów HTTP (hostów):
-
xCommand HttpClient Allow Hostname Add Expression:
-
xCommand HttpClient Zezwól na wyczyszczenie nazwy hosta
-
xCommand HttpClient Lista dozwolonych nazw hosta
-
xCommand HttpClient Allow Hostname To Remove Id:
Jeśli lista zawiera wpisy serwerów, można wysyłać tylko żądania HTTP(S) do tych serwerów. Jeśli jednak lista jest pusta, możesz wysyłać żądania do dowolnego serwera HTTP(S).
Sprawdzenie listy dozwolonych serwerów odbywa się zarówno w przypadku korzystania z niezabezpieczonego (HTTP), jak i bezpiecznego (HTTPS) transferu danych.
HTTPS bez sprawdzania poprawności 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 prawidłowy, zostanie wyświetlony komunikat o błędzie. Urządzenie nie wysyła żadnych danych do tego serwera.
Zalecamy używanie protokołu HTTPS z weryfikacją certyfikatu. Jeśli walidacja certyfikatu nie jest możliwa, administrator systemu może ustawić xConfiguration HttpClient AllowInsecureHTTPS: Włącz
). Umożliwia to korzystanie z protokołu HTTPS bez sprawdzania poprawności certyfikatu serwera.
Wysyłanie żądań HTTP(S)
Po włączeniu funkcji żądania klienta HTTP(S), możesz użyć następujących poleceń do wysyłania żądań do serwera HTTP(S).
jest albo Umieść
, Umieść
, Poprawka
, Uzyskaj
, lub Usuń
.
-
xCommand HttpClient [AllowInsecureHTTPS: ] [Nagłówek: ] [ResponseSizeLimit: ] [ResultBody: ] [Limit czasu: ] Adres URL:
Dodanie pól nagłówka jest opcjonalne, a możesz dodać maksymalnie 20 pól.
Parametr AllowInsecureHTTPS
działa tylko wtedy, gdy administrator systemu zezwolił na korzystanie z protokołu HTTPS bez walidacji certyfikatu serwera. Jeśli tak, 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śli ładunek odpowiedzi jest większy niż ten maksymalny rozmiar, polecenie zwraca błąd stanu. Komunikat o błędzie informuje, że maksymalny rozmiar pliku został przekroczony. Nie ma to jednak wpływu na stronę serwera; serwer odebrał i przetworzył żądanie poprawnie.
Użyj parametru ResultBody
, aby zdecydować, jak sformatować treść odpowiedzi HTTP z serwera w wyniku polecenia. Dostępne są trzy opcje:
-
Brak
: Nie dołączaj treści odpowiedzi HTTP do wyniku polecenia. -
Base64
: Zakoduj ciało w formacie Base64 przed włączeniem go do wyniku. -
Zwykły tekst
: Dołącz treść w wyniku jako zwykły tekst. Jeśli odpowiedź zawiera litery niedrukowalne, polecenie zwraca błąd stanu z komunikatem informującym, że napotkano dane niedrukowalne.
Użyj parametru Limit czasu
, aby ustawić limit czasu (w sekundach). Jeśli żądanie nie zostanie ukończone w tym okresie, interfejs API zwróci błąd.
Wprowadź ładunek (dane) zaraz po wydaniu polecenia. Wszystko, co wprowadzisz, w tym podziały wierszy, jest częścią ładunku. Po zakończeniu zakończ podziałem wiersza ("\n") i oddzielnym wierszem zawierającym tylko kropkę, po której następuje podział wiersza (".\n"). Teraz polecenie jest wykonywane, a dane są wysyłane do serwera.
Przykłady
Treść wiadomości to JSON w obu tych przykładach. Może to być dowolny format, w zależności od oczekiwanego formatu usługi, która odbiera wiadomości.
Przykład 1: Kontrola urządzeń IoT za pomocą http Post
Oto funkcja makro, która włącza światło podłączone do mostka Philips Hue:
function hue_command(dane) { 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, „Nagłówek”: nagłówki }, polecenie); }
Możesz zrobić to samo w wierszu poleceń za pomocą interfejsu API:
xcommand HttpClient Put Header: "Content-Type: Adres URL application/json: „http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Przykład 2: Publikowanie danych w narzędziu do monitorowania za pomocą http Post
xcommand HttpClient Post Header: "Content-Type: Adres URL aplikacji/json: „https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Użytkownik zgłosił problem z tym systemem","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Dalsze informacje
Więcej informacji na temat korzystania z żądań klienta HTTP można znaleźć w Przewodniku dostosowywania. Wybierz najnowszą wersję.
Obsługa Cisco (TAC) nie obsługuje debugowania kodu innych firm, w tym makr. Sprawdź, https://roomos.cisco.com czy potrzebujesz pomocy z makrami i kodem innych firm.