Ta funkcja umożliwia wysyłanie dowolnych żądań HTTP(S) z płyty, pokoju lub urządzenia biurkowego do serwera HTTP(S). Ponadto urządzenie odbiera odpowiedź, którą serwer wysyła z powrotem. Urządzenie obsługuje metody Post, Put, Patch, Get i Delete.
Za pomocą makr można w dowolnym momencie wysyłać dane do serwera HTTP(S). Możesz wybrać, jakie dane chcesz wysłać, i uporządkować je według własnego uznania. Robiąc to w ten sposób, możesz dostosować dane do już ustalonej usługi.
Środki bezpieczeństwa:
Funkcja żądania klienta HTTP(S) jest domyślnie wyłączona. Administrator systemu musi jawnie włączyć tę funkcję, ustawiając
na Włączone (xConfiguration HttpClient Mode: On
).Administrator systemu może uniemożliwić korzystanie z protokołu HTTP, ustawiając >
na Wartość Fałsz (xConfiguration HttpClient AllowHTTP: False
).Administrator systemu może określić listę serwerów HTTP(S), do których urządzenie może wysyłać dane. (Patrz
xCommand HttpClient Allow Hostname
polecenia.)Liczba jednoczesnych żądań HTTP(S) jest ograniczona.
Konfiguracje, o których mowa w tym artykule, są dostępne zarówno w interfejsie internetowym urządzenia, jak i w interfejsie API. Polecenia są dostępne w interfejsie 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: <Regular expression that matches the host name or IP address of the HTTP(S) server>
xCommand HttpClient Allow Hostname Clear
xCommand HttpClient Allow Hostname List
xCommand HttpClient Allow Hostname Remove Id: <id of an entry in the list>
Jeśli lista nie jest pusta, żądania HTTP(S) można wysyłać tylko do serwerów na liście. Jeśli lista jest pusta, można wysłać żądania do dowolnego serwera HTTP.If the list is empty, you can send the requests to any HTTP(S) server.
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 sprawdzanie poprawności certyfikatu nie jest możliwe, administrator systemu może ustawić httpClient
xConfiguration HttpClient AllowInsecureHTTPS: On
). Umożliwia to korzystanie z protokołu HTTPS bez sprawdzania poprawności certyfikatu serwera.
Wysyłanie żądań HTTP
Po włączeniu funkcji żądania klienta HTTP(S) można użyć następujących poleceń, aby wysłać żądania do serwera HTTP(S).
<method>
jest albo
Post
,
Put
,
Patch
,
Get
, lub
Delete
.
xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximum response size>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Url: <URL to send the request to>
Dodanie pól nagłówka jest opcjonalne, ale można dodać maksymalnie 20 pól.
Ten
AllowInsecureHTTPS
parametr ma wpływ tylko wtedy, gdy administrator systemu zezwolił na korzystanie z protokołu HTTPS bez sprawdzania poprawności certyfikatu serwera. Jeśli tak, można wysłać dane do serwera bez sprawdzania poprawności certyfikatu serwera, jeśli parametr jest ustawiony na
True
. Jeśli pominiesz parametr lub ustawisz go na
False
, dane nie są wysyłane, jeśli sprawdzanie poprawności certyfikatu nie powiedzie się.
Ten
ResposenSizeLimit
jest maksymalnym rozmiarem ładunku (bajtami), 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 przycisku
ResultBody
, aby zdecydować, jak sformatować treść odpowiedzi HTTP z serwera w wyniku polecenia. Dostępne są trzy opcje:
None
: Nie dołączaj treści odpowiedzi HTTP do wyniku polecenia.Base64
: Base64 koduje ciało przed uwzględnieniem go w wyniku.PlainText
: Uwzględnij 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 przycisku
Timeout
, aby ustawić limit czasu (sekundy). 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(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: Publikowanie danych w narzędziu do monitorowania za pomocą 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 kodu innych firm, w tym makr. Sprawdź społeczność Cisco Collaboration Developer, jeśli potrzebujesz pomocy dotyczącej makr i kodu innej firmy. Ponadto na tej stronie znajduje się wiele zasobów dla programistów i integratorów.