Envio de solicitações HTTP de dispositivos Board, Desk e Room Series
list-menuComentários?
Esse recurso permite que dispositivos Board, Desk ou Room Series iniciem e recebam solicitações HTTP (S) com um servidor HTTP (S). Esses dispositivos suportam métodos como Post, Put, Patch, Get e Delete, permitindo diferentes interações com o servidor.

Com macros, você pode enviar dados para um servidor HTTP (S) sempre que precisar. Você tem controle sobre quais dados são enviados e como eles são organizados, simplificando a adaptação dos dados para uso com os serviços existentes.

Medidas de segurança:

  • O recurso de solicitação de cliente HTTP (S) está desativado por padrão. Um administrador do sistema deve ativar explicitamente o recurso definindo HttpClient > Mode como On ( xConfiguration HttpClient Mode: On).

  • O administrador do sistema pode impedir o uso de HTTP definindo HttpClient > AllowHttp como False ( xConfiguration HttpClient AllowHttp: False).

  • O administrador do sistema pode especificar uma lista de servidores HTTP (S) para os quais o dispositivo tem permissão para enviar dados. (Consulte os comandos XCommand HttpClient Allow Hostname .)

  • O número de solicitações HTTP (S) simultâneas é limitado.

As configurações mencionadas neste artigo estão disponíveis na interface web do dispositivo e na API. Os comandos estão disponíveis por meio da API. Leia o artigo Configurações avançadas para obter informações sobre como acessar a interface da web e usar a API.

Lista de servidores HTTP (S) permitidos

O administrador do sistema pode usar esses comandos para configurar e manter uma lista de até dez servidores (hosts) HTTP (S) permitidos:

  • XCommand HttpClient Permitir que nome de host adicione expressão: <Regular expression that matches the host name or IP address of the HTTP (S) server>

  • XCommand HttpClient Permitir limpeza do nome do host

  • Lista de nomes de host permitidos do XCommand HttpClient

  • XCommand HttpClient Permitir ID de remoção do nome do host: <id of an entry in the list>

Se a lista contiver entradas de servidor, você só poderá enviar solicitações HTTP (S) para esses servidores. No entanto, se a lista estiver vazia, você poderá enviar solicitações para qualquer servidor HTTP (S).

A verificação da lista de servidores permitidos é realizada ao usar transferência de dados insegura (HTTP) e segura (HTTPS).

HTTPS sem validação de certificado

Ao enviar solicitações por HTTPS, o dispositivo verifica o certificado do servidor HTTPS por padrão. Se o certificado do servidor HTTPS não for considerado válido, você receberá uma mensagem de erro. O dispositivo não envia nenhum dado para esse servidor.

Recomendamos usar HTTPS com validação de certificado. Se a validação do certificado não for possível, o administrador do sistema poderá definir HttpClient > AllowInsecureHttps como On ( xConfiguration HttpClient AllowInsecureHttps: On). Isso permite o uso de HTTPS sem validar o certificado do servidor.

Enviando solicitações HTTP (S)

Depois que o recurso de solicitação do cliente HTTP (S) estiver ativado, você poderá usar os seguintes comandos para enviar solicitações a um servidor HTTP (S). <method>é Post , Put , Patch , Get ou Delete .

  • XCommand HttpClient [AllowInsecureHttps:] [Cabeçalho:] [ResponseSizeLimit:] [Corpo do resultado:] [Tempo limite:] Url: <Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>

Adicionar campos de cabeçalho é opcional e você pode adicionar até 20 campos.

O parâmetro allowInsecureHTTPS tem efeito somente se o administrador do sistema tiver permitido o uso de HTTPS sem validar o certificado do servidor. Nesse caso, você pode enviar dados para o servidor sem validar o certificado do servidor se o parâmetro estiver definido como True. Se você omitir o parâmetro ou defini-lo como Falso , os dados não serão enviados se a validação do certificado falhar.

O parâmetro resposensizeLimit é o tamanho máximo da carga útil (bytes) que o dispositivo aceita como resposta do servidor. Se a carga de resposta for maior do que esse tamanho máximo, o comando retornará um erro de status. A mensagem de erro diz que o tamanho máximo do arquivo foi excedido. No entanto, isso não tem efeito no lado do servidor; o servidor recebeu e processou a solicitação corretamente.

Use o parâmetro resultBody para decidir como formatar o corpo da resposta HTTP do servidor no resultado do comando. Você tem três opções:

  • Nenhum : não inclua o corpo da resposta HTTP no resultado do comando.

  • Base64 : Base64 codifica o corpo antes de incluí-lo no resultado.

  • Texto sem formatação : inclua o corpo no resultado como texto sem formatação. Se a resposta contiver letras não imprimíveis, o comando retornará um erro de status com uma mensagem informando que dados não imprimíveis foram encontrados.

Use o parâmetro Timeout para definir um período de tempo limite (segundos). Se a solicitação não for concluída durante esse período, a API retornará um erro.

Insira a carga útil (dados) logo após emitir o comando. Tudo o que você digitar, incluindo quebras de linha, faz parte da carga. Quando terminar, termine com uma quebra de linha (“\n”) e uma linha separada contendo apenas um ponto seguido por uma quebra de linha (”. \n”). Agora, o comando é executado e os dados são enviados para o servidor.

Exemplos

O corpo da mensagem é JSON nesses dois exemplos. Pode ser de qualquer formato, dependendo do formato esperado do serviço que está recebendo as mensagens.

Exemplo 1: controle de dispositivos de IoT usando HTTP Post

Aqui está uma função macro que acende uma luz conectada a uma ponte 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); } 
   

Você pode fazer o mesmo na linha de comando usando a API:


     xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 
   

Exemplo 2: Publicar dados em uma ferramenta de monitoramento usando 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"} . 
   

Informações adicionais

Encontre mais detalhes sobre como usar solicitações de clientes HTTP no guia de personalização. Escolha a versão mais recente.

O suporte da Cisco (TAC) não oferece suporte à depuração de código de terceiros, incluindo macros. Consulte https://roomos.cisco.com se precisar de ajuda com macros e códigos de terceiros.

Este artigo foi útil?
Este artigo foi útil?