Dzięki makrom możesz wysyłać dane do serwera HTTP (S) w dowolnym momencie. Masz kontrolę nad tym, jakie dane są wysyłane i jak są organizowane, 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 wyraźnie włączyć tę funkcję, ustawiając wartość de na Włączony (
XConfiguration HttpClient Mode:Włączony). -
Administrator systemu może zapobiec używaniu protokołu HTTP, ustawiając Htt : False).
-
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 Zezwalaj na nazwę hosta). -
Liczba jednoczesnych żądań HTTP (S) jest ograniczona.
Konfiguracje, o których mowa w tym artykule, są dostępne zarówno z interfejsu internetowego urządzenia, jak i w interfejsie API. Polecenia są dostępne za pośrednictwem interfejsu API. Przeczytaj artykuł Ustawienia zaawansowane, aby uzyskać informacje o tym, jak uzyskać dostęp do interfejsu internetowego i korzystać z interfejsu API.
Lista dozwolonych serwerów HTTP (S)
Administrator systemu może użyć tych poleceń do skonfigurowania i utrzymywania listy maksymalnie dziesięciu dozwolonych serwerów HTTP (S) (hostów):
-
XCommand HttpClient Zezwalaj nazwę hosta Dodaj wyrażenie:<Regular expression that matches the host name or IP address of the HTTP (S) server> -
XCommand HttpClient Zezwalaj nazwę hosta Wyczyść -
XCommand HttpClient Zezwalaj na listę nazw hosta -
XCommand HttpClient Zezwalaj nazwę hosta Usuń identyfikator:<id of an entry in the list>
Jeśli lista zawiera wpisy serwera, 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).
Kontrola z listą dozwolonych serwerów odbywa się zarówno przy użyciu niezabezpieczonego (HTTP), jak i bezpiecznego (HTTPS) przesyłania danych.
HTTPS bez walidacji certyfikatu
Podczas wysyłania żądań przez HTTPS urządzenie domyślnie sprawdza certyfikat serwera HTTPS. Jeśli certyfikat serwera HTTPS nie jest prawidłowy, zostanie wyświetlony komunikat o błędzie. Urządzenie nie wysyła żadnych danych na ten serwer.
Zalecamy używanie protokołu HTTPS z walidacją certyfikatów. Jeśli weryfikacja certyfikatu nie jest możliwa, administrator systemu może ustawić wartość On). 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żna użyć następujących poleceń do wysyłania żądań do serwera HTTP (S).
<method>to O
publi ku
j,
U
mie ść
,
Patch
,
Get lub
Delete
.
-
XCommand HttpClient [AllowInsecureHTTPS:] [Nagłówek:] [ResponseSizeLimit:] [ResultBody:] [Limit czasu:] Url:<Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>
Dodawanie pól nagłówka jest opcjonalne i można dodać do 20 pól.
Parametr
allowInsecureHTTPS działa tylko wtedy, gdy administrator systemu zezwolił na używanie protokołu HTTPS bez sprawdzania poprawności certyfikatu serwera. Jeśli tak, możesz wysłać dane do serwera bez sprawdzania poprawności certyfikatu serwera, jeśli parametr jest ustawiony na wartość
True
. Jeśli parametr zostanie pominięty lub ustawiony na wartość
Fal se
, dane nie będą wysyłane, jeśli weryfikacja certyfikatu nie powiedzie się.
Parametr
RespoSensize Limit to maksymalny rozmiar ładunku (bajty), który urządzenie akceptuje jako odpowiedź serwera. Jeśli ł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 wpływu na stronę serwera; serwer otrzymał i przetworzył żądanie poprawnie.
Użyj
parametru
ResultBody, aby zdecydować, jak sformatować treść odpowiedzi HTTP z serwera w wyniku polecenia. Masz trzy opcje:
-
Brak: Nie uwzględniaj treści odpowiedzi HTTP w wyniku polecenia. -
Base64: Base64 koduje ciało przed włączeniem go do wyniku. -
PlainText: Uwzględnij treść w wyniku jako zwykły tekst. Jeśli odpowiedź zawiera litery, które nie nadają się do wydruku, polecenie zwraca błąd stanu z komunikatem informującym o napotkaniu danych, które nie nadają się do wydruku.
Użyj
parametru
Timeout, aby ustawić okres limitu czasu (sekundy). Jeśli żądanie nie zostanie wypełnione w tym okresie, interfejs API zwraca błąd.
Wprowadź ładunek (dane) zaraz po wydaniu polecenia. Wszystko, co wprowadzasz, w tym przerwy linii, jest częścią ładunku. Po zakończeniu zakończ podziałem linii („\n”) i oddzielną linią zawierającą tylko kropkę, po której następuje przerwanie linii (”. \n”). Teraz polecenie jest wykonywane, a dane są wysyłane do serwera.
Przykłady
Treścią wiadomości jest JSON w obu tych przykładach. Może to być dowolny format, w zależności od oczekiwanego formatu usługi, która odbierze wiadomości.
Przykład 1: Sterowanie urządzeniami IoT za pomocą HTTP Post
Oto funkcja makro, która włącza światło podłączone do mostu Philips Hue:
function hue_command(data) { 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, 'Header': headers }, command); }
Możesz zrobić to samo w wierszu poleceń za pomocą interfejsu API:
xcommand HttpClient Put Header: "Content-Type: application/json" 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 HTTP Post
xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"A user reported an issue with this system","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 kodów innych firm, w tym makr. Sprawdź https://roomos.cisco.com, jeśli potrzebujesz pomocy z makrami i kodem innych firm.