Wysyłanie żądań HTTP z urządzeń Board, Desk i Room Series
list-menuOpinia?
Ta funkcja umożliwia urządzeniom Board, Desk lub Room Series inicjowanie i odbieranie żądań HTTP (S) za pomocą serwera HTTP (S). Urządzenia te obsługują metody, takie jak Post, Put, Patch, Get i Delete, umożliwiając różne interakcje z serwerem.

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ść HttpClient > Mo de na Włączony ( XConfiguration HttpClient Mode: Włączony).

  • Administrator systemu może zapobiec używaniu protokołu HTTP, ustawiając Htt pClient > AllowHTT P na wartość False ( xConfiguration HttpCli ent Al low H ttp: 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ść HttpClient > AllowInsecureHtt ps na Włączone ( XConfiguration HttpClient AllowInsecureH ttps: 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.

Czy ten artykuł był pomocny?
Czy ten artykuł był pomocny?