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 tryb > HttpClient na Włączone ( xConfiguration HttpClient Mode: On ).

  • Administrator systemu może uniemożliwić korzystanie z protokołu HTTP, ustawiając > Zezwalajhttp 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 > AllowInsecureHTTPS na Włączone ( 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.