Com as macros, você pode enviar dados para um servidor HTTPs sempre que necessário. Você tem controle sobre quais dados são enviados e como eles estão organizados, tornando simples a adaptação dos dados para uso com os serviços existentes.
Medidas de segurança:
-
Por padrão, o recurso de solicitação de cliente de HTTPs está desativado. O administrador do sistema deve ativar explicitamente o recurso definindo to On (
xConfiguration HttpClient Mode: On). -
O administrador do sistema pode impedir o uso de HTTP definindo HttpClient Falso ( xConfiguração HttpClient AllowHTTP: Falso
). -
O administrador do sistema pode especificar uma lista de servidores HTTPs aos quais o dispositivo tem permissão para enviar dados. (Consulte os
comandos xCommand HttpClient Permitir nome do host.) -
O número de solicitações simultâricas de HTTPs é limitado.
As configurações referidas neste artigo estão disponíveis tanto na interface da Web do dispositivo quanto na API. Os comandos estão disponíveis por meio do API. Leia o artigo Configurações avançadas para obter informações sobre como acessar a interface da Web e usar o API.
Lista de servidores HTTPs permitidos
O administrador do sistema pode usar esses comandos para configurar e manter uma lista de até dez servidores HTTPs permitidos (hosts):
-
xCommand HttpClient Permitir nome do host Adicionar expressão: expressão <Regular que corresponda ao nome do host ou ao endereço IP do servidor HTTPs> -
xCommand httpClient Permitir nome do host claro -
lista xCommand HttpClient Permitir nome do host -
xCommand httpClient Permitir nome do host remover ID: <ID de uma entrada na lista>
Se a lista contiver entradas de servidores, você somente poderá enviar solicitações de HTTPs a esses servidores. No entanto, se a lista estiver vazia, você poderá enviar solicitações a qualquer servidor HTTPs.
A verificação na lista de servidores permitidos é realizada durante a transferência de dados sem segurança (HTTP) e segura (HTTPS).
HTTPS sem validação de certificado
Ao enviar solicitações pelo 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.
É recomendável usar HTTPS com validação de certificado. Se a validação do certificado não for possível, o administrador do sistema pode definir HttpClient On ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Isso permite o uso de HTTPS sem validar o certificado do servidor.
Envio de solicitações de HTTPs
Assim que o recurso de solicitação de cliente do HTTPs estiver ativado, você poderá usar os seguintes comandos para enviar solicitações a um servidor HTTPs. <method>issePOST , PUT,Patch,Get ou Delete.
-
xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Max tamanho de respostaimum>] [ResultBody: <None/PlainText/Base64>] [Tempo limite: <O tempo limite>] Url: <URL para enviar a solicitação ao>
Adicionar campos de cabeçalho é opcional e você pode adicionar até 20 campos.
O parâmetro AllowInsecureHTTPS só terá efeito se o administrador do sistema tiver permitido o uso de HTTPS sem validar o certificado do servidor. Se sim, você pode enviar dados para o servidor sem validar o certificado do servidor se o parâmetro estiver definido como Verdadeiro . Se você deixar de fora 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 Redimensionar endereço é o tamanho máximo da carga (bytes) que o dispositivo aceita como uma resposta do servidor. Se a carga de resposta for maior que esse tamanho máximo, o comando retornará um erro de status. A mensagem de erro informa que o tamanho máximo do arquivo é 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 de comando. Você tem três opções:
-
Nenhum: não inclua o corpo da resposta HTTP no resultado de comando. -
Base64: Base64 codifica o corpo antes de incluí-lo no resultado. -
PlainText: inclua o corpo no resultado como texto simples. Se a resposta contiver letras não imprimíveis, o comando retornará um erro de status com uma mensagem informando que foram encontrados dados não imprimíveis.
Use o parâmetro Tempo limite para definir um período limite (segundos). Se a solicitação não for concluída durante esse período, o API retornará um erro.
Digite a carga (dados) logo após ter emitido o comando. Qualquer coisa que você entrar, incluindo quebras de linha, faz parte da carga. Quando terminar, termine com uma pausa na linha ("\n") e uma linha separada contendo apenas um período seguido de uma pausa na linha (".\n"). Agora o comando é executado e os dados são enviados para o servidor.
Exemplos
O corpo da mensagem é JSON em ambos os exemplos. Pode ser qualquer formato, dependendo do formato esperado do serviço que está recebendo as mensagens.
Exemplo 1: Controle do dispositivo IoT usando HTTP POST
Aqui está uma função macro que ativa uma luz que está conectada a uma ponte Philips Hue:
hue_command(dados) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; cabeçalhos de var = 'Tipo de conteúdo: aplicativo/json'; comando var = '{"on":true}'; xapi.command('HttpClient PUT', { 'Url': url, 'Header': cabeçalhos }, comando); }
É possível fazer o mesmo na linha de comando usando a tecla API:
xcommand HttpClient PUT Cabeçalho: "Tipo de conteúdo: aplicativo/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Exemplo 2: Postando dados em uma ferramenta de monitoramento usando HTTP POST
xcommand HttpClient POST Cabeçalho: "Tipo de conteúdo: aplicativo/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Mensagem":"Um usuário reportou um problema com este sistema","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Mais informações
Encontre mais detalhes sobre como usar as solicitações de cliente HTTP no guia de personalização. Escolha a versão mais recente.
O Cisco suporte (TAC) não oferece suporte à depuração de códigos de terceiros, incluindo macros. Verifiquehttps://roomos.cisco.com se precisar de ajuda com macros e códigos de terceiros.