Este tópico contém as seguintes seções:
Utilize o nó HTTPRequest para interagir com um serviço da Web, utilizando toda ou parte da mensagem de entrada como o pedido enviado para esse serviço. Você também pode configurar o nó para criar uma nova mensagem de saída com o conteúdo da mensagem de entrada aumentada pelo conteúdo da resposta do serviço da Web antes de propagar a mensagem para nós subseqüentes no fluxo de mensagens.
Dependendo da configuração, esse nó constrói um pedido HTTP ou HTTPS (HTTP sobre SSL) a partir do conteúdo especificado da mensagem de entrada e envia isso ao serviço da Web. Ele recebe a resposta do serviço da Web e analisa a resposta para inclusão na árvore de saída. Isso gera cabeçalhos HTTP, se eles forem requeridos por sua configuração.
Você pode utilizar esse nó em um fluxo de mensagens que não contenha um nó HTTPInput ou HTTPReply.
O nó HTTPRequest trata mensagens nos seguintes domínios de mensagens:
O nó HTTPRequest é representado no workbench pelo seguinte ícone:
O nó HTTPRequest pode ser utilizado em qualquer fluxo de mensagens que precise enviar um pedido HTTP. O exemplo mais comum disso é um fluxo de mensagens que chama um serviço da Web. Para obter informações sobre aplicativos de serviço da Web, consulte Aplicativos de Serviço da Web.
Como o nó interage diretamente com um serviço externo utilizando TCP/IP, ele pode ter os tipos de erro a seguir:
Se o nó detectar esses erros, ele gerará uma exceção, ocupará a lista de exceções com informações sobre o erro recebidas e roteará a mensagem de entrada inalterada para o terminal failure.
A resposta será colocada como saída em um BLOB, já que o nó não pode determinar qual formato a resposta terá. Se você não configurou esse nó para identificar o redirecionamento, as mensagens com código de status de redirecionamento (3xx) também serão identificadas da mesma forma.
O nó HTTPRequest trata os códigos de status de série 100 como uma resposta contínua, descarta a resposta atual e aguarda por outra resposta do servidor da Web.
Os códigos de status de série 200 são tratados como sucesso e a resposta é roteada para o terminal de saída do nó enquanto segue as configurações das várias guias do nó para o formato da mensagem de saída gerada.
Os códigos de status de série 300 são para redirecionamento. Se a propriedade Seguir Redirecionamento for selecionada, o nó não enviará novamente o pedido ao novo especificado na resposta recebida. Se a propriedade Seguir Redirecionamento não for selecionada, os códigos serão tratados como um erro, conforme descrito na seção acima sobre manipulação de erros.
Os códigos de status de série 400 e 500 são erros e são tratados conforme descrito na seção acima sobre manipulação de erros.
Se a propriedade Substituir Mensagem de Entrada por Resposta do Serviço da Web ou a propriedade Substituir Entrada por Erro for selecionada, o cabeçalho da mensagem de entrada, ou seja, o cabeçalho pertencente à mensagem quando chega ao terminal IN do nó HTTPRequest, não é propagado com a mensagem que sai do nó HTTPRequest. No entanto, se uma das propriedades que especifica um local na árvore de mensagens for especificada, os cabeçalhos da mensagem de entrada serão propagados.
O cabeçalho HTTPResponse, que contém os cabeçalhos retornados pelo serviço da Web remoto, é o primeiro cabeçalho da mensagem propagado do nó após as propriedades. Isso é verdade independentemente das opções escolhidas. Portanto, se quiser que a resposta do nó HTTPRequest seja colocada em uma fila MQ, você deve manipular os cabeçalhos de forma que um MQMD seja o primeiro cabeçalho (após propriedades).
Se estiver substituindo a mensagem de entrada por uma resposta, é possível copiar o MQMD da mensagem de entrada para a árvore Ambiente antes do nó HTTPRequest e, em seguida, copiá-lo novamente na árvore de mensagens após o nó HTTPRequest. Se você estiver especificando um local para a resposta para manter cabeçalhos de mensagens de entrada existentes, você deve mover ou remover o cabeçalho de Resposta HTTP para que o MQMD seja o primeiro cabeçalho.
SET OutputRoot = InputRoot; SET OutputRoot.HTTPResponseHeader = NULL;
SET OutputRoot = InputRoot; DECLARE HTTPHeaderRef REFERENCE TO OutputRoot.HTTPResponseHeader; DETACH HTTPHeaderRef; ATTACH HTTPHeaderRef TO OutputRoot.MQMD AS NEXTSIBLING;
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'GET';
Quando tiver colocado uma instância do nó HTTPRequest em um fluxo de mensagens, você poderá configurá-lo. Clique com o botão direito do mouse na visualização do editor clique em Propriedades. As propriedades básicas do nó são exibidas.
Todas as propriedades obrigatórias, para as quais é necessário inserir um valor (aquelas que não possuem um valor padrão definido) são marcadas com um asterisco no diálogo das propriedades.
Configure o nó HTTPRequest da seguinte forma:
As duas primeiras opções fornecem métodos dinâmicos de definir uma URL para cada mensagem de entrada à medida que passam pelo fluxo de mensagens. Para utilizar uma dessas opções, você deve incluir um nó Compute no fluxo de mensagens antes do nó HTTPRequest para criar e inicializar o valor requerido.
A terceira opção fornece um valor fixo para cada mensagem recebida por esse nó. Você deve configurar essa propriedade para conter uma configuração padrão utilizada se os outros campos não tiverem sido criados ou contiverem um valor nulo. Se um dos campos contiver um valor, a definição dessa propriedade será ignorada. A propriedade URL do Serviço da Web deve conter uma URL válida ou a implementação falhará. Você também deve assegurar que o valor configurado em X-Original-HTTP-URL ou LocalEnvironment.Destination.HTTP.RequestURL também seja uma URL válida; se não for, o nó gerará uma exceção e a mensagem será propagada para o terminal em falha.
Se uma URL iniciar com http://, o nó de pedido fará um pedido HTTP à URL especificada. Se a URL iniciar com https://, o nó de pedido fará um pedido HTTPS (HTTP sobre SSL) à URL especificada, utilizando os parâmetros especificados na guia SSL do nó.
Se você selecionar HTTP/1.1, terá a opção de também utilizar HTTP/1.1 keep alive.
Observe que as duas extremidades de uma conexão SSL devem concordar com o protocolo a ser utilizado, de forma que o protocolo escolhido deve ser um aceito pelo servidor remoto.
Se desejar que a mensagem de pedido contenha um subconjunto da mensagem de entrada, limpe esta caixa de opções e preencha a propriedade Localização da Mensagem de Pedido na Árvore.
Você pode inserir qualquer referência de campo ESQL válida, incluindo expressões na referência. Por exemplo, insira:
InputRoot.XMLNS.ABC
Se você selecionar a caixa de opções Utilizar Toda a Mensagem de Entrada como Pedido, essa propriedade será ignorada.
Quando o conteúdo apropriado da árvore da mensagem for analisado para criar um fluxo de bits, serão utilizadas as propriedades da mensagem (domínio, conjunto, tipo e formato) associadas ao corpo da mensagem de entrada e armazenadas na pasta Propriedades.
Se desejar que a mensagem de resposta do serviço da Web seja incluída na mensagem de saída com parte do conteúdo da mensagem de entrada, limpe essa caixa de opções e preencha a propriedade Localização da Mensagem de Resposta na Árvore.Se você limpar essa propriedade, o nó copiará a mensagem de entrada para a mensagem de saída e gravará a mensagem de resposta do serviço da Web sobre o conteúdo da mensagem de saída na localização especificada (a própria mensagem de entrada não é modificada).
Você pode inserir qualquer referência de campo ESQL válida, incluindo expressões na referência e incluindo novas referências de campo (para criar um novo nó na árvore de mensagens para a resposta). Por exemplo, insira:
OutputRoot.XMLNS.ABC.DEFou
Environment.WSReply
Se você selecionar a caixa de opções Substituir Mensagem de Entrada pela Resposta do Serviço da Web, essa propriedade será ignorada.
Quando o fluxo de bits de resposta é analisado para criar conteúdo da árvore de mensagens, são utilizadas as propriedades da mensagem (domínio, conjunto, tipo e formato) especificadas nas Propriedades padrão do nó (descritas a seguir).
Se você não desejar que um nó gere um HTTPRequestHeader para a mensagem do pedido, limpe a caixa de opções Gerar Cabeçalhos HTTP Padrão na Entrada (a definição padrão é selecionada). Para controlar o conteúdo do HTTPRequestHeader incluído na mensagem de pedido, inclua o nó Compute que inclui um HTTPRequestHeader à mensagem de entrada antes desse nó HTTPRequest no fluxo de mensagens e limpe essa caixa de opções.
Isso inclui também os cabeçalhos de serviços da Web mostrados na tabela a seguir, com valores padrão, se não estiverem presentes em HTTPRequestHeader ou HTTPInputHeader.
Cabeçalho | Valor Padrão |
---|---|
SOAPAction | "" (cadeia vazia) |
Content-Type | text/xml; charset=utf-8 |
Host | O nome do host ao qual o pedido é enviado |
Inclui também o cabeçalho adicional Content-Length com o valor correto calculado, mesmo que não esteja presente no HTTPRequestHeader ou no HTTPInputHeader.
Se desejar que a mensagem de erro do serviço da Web seja incluída na mensagem de saída com parte do conteúdo da mensagem de entrada, limpe essa caixa de opções e preencha a propriedade Localização da Mensagem de Erro. Se você limpar essa propriedade, o nó copiará a mensagem de entrada para a mensagem de saída e gravará a mensagem de erro do serviço da Web sobre o conteúdo da mensagem de saída na localização especificada (a própria mensagem de entrada não é modificada).
Você pode digitar qualquer referência de campo ESQL válida, incluindo expressões na referência e incluindo novas referências de campo (para criar um novo nó na árvore de mensagens para a resposta). Por exemplo, insira:
OutputRoot.XMLNS.ABC.DEFou
Environment.WSError
Se você selecionar a caixa de opções Substituir Entrada por Erro, essa propriedade será ignorada.
Se uma mensagem de erro for retornada pelo serviço da Web, os valores dessas propriedades serão ignorados e a mensagem será analisada pelo analisador BLOB.
Deixe a opçãoConjunto de Mensagens em branco para os analisadores XML, XMLNS, XMLNSC, JMS, MIME e BLOB.
Deixe a opção Tipo de Mensagem em branco para analisadores XML, XMLNS, XMLNSC, JMS, MIME, BLOB e IDOC.
Deixe Formato da Mensagem em branco para os analisadores XML, XMLNS, XMLNSC, JMS, MIME e BLOB.
Para obter mais detalhes, consulte Validando Mensagens e Propriedades de Validação para Mensagens no Domínio MRM.
Clique em Cancelar para fechar o diálogo e descartar todas as alterações feitas nas propriedades.
Conecte o terminal out, error ou failure deste nó a outro nó desse fluxo de mensagens para processar a mensagem melhor, processar os erros ou enviar a mensagem para um destino adicional. Se você não conectar o terminal de erro, a mensagem será descartada. Se você não conectar o terminal failure, o intermediário fornecerá o processamento de erros padrão, descrito em Tratando Erros em Fluxos de Mensagens.
Os terminais do nó HTTPRequest são descritos na tabela a seguir.
Terminal | Descrição |
---|---|
Entrada | O terminal de entrada que aceita a mensagem para processamento pelo nó. |
Defeito | O terminal de saída para o qual a mensagem será roteada se for detectado um defeito durante o processamento no nó. |
Saída | O terminal de saída para o qual a mensagem será roteada se representar a conclusão bem-sucedida do pedido de serviço da Web e for requerido processamento adicional nesse fluxo de mensagens. |
Erro | O terminal de saída para o qual as mensagens que incluem um código de status de HTTP que não esteja no intervalo de 200 a 299, incluindo os códigos de redirecionamento (3xx), se você não definiu a propriedade Seguir Redirecionamento HTTP. |
As tabelas a seguir descrevem as propriedades do nó; a coluna com cabeçalho M indica se a propriedade é obrigatória (marcado com um asterisco no diálogo de propriedades caso seja necessário digitar um valor quando nenhum padrão for definido), a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens no arquivo bar para implementá-lo).
As propriedades Básicas do nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
URL de Serviço da Web | Sim | Sim | A URL para o serviço da Web. É necessário fornecer isso no formato http://<nome do host>[:<porta>]/[<caminho>], em que
|
|
Tempo Limite de Pedido | Sim | Não | 120 | O tempo em segundos no qual o nó aguarda por uma resposta do serviço da Web. O intervalo válido é de 1 a (231)-1. Não é possível inserir um valor que representa uma espera ilimitada. |
Local do Proxy HTTP(S) | Não | Sim | O servidor proxy para o qual os pedidos são enviados. Deve estar no formato nome_do_host:porta. | |
Seguir o redirecionamento HTTP(S). | Não | Não | Não selecionada | Determina se as redireções HTTP são seguidas. Se você selecionar a caixa de opções, o redirecionamentos serão seguidos. Se você limpar essa caixa de opções, os redirecionamentos não serão seguidos. |
Versão HTTP | Não | Sim | 1.0 | A versão HTTP a ser utilizada para pedidos. Os valores válidos são 1.0 e 1.1. |
Ativar HTTP/1.1 Keep-Alive | Não | Sim | Selecionada (se a Versão HTTP for 1.1) | Utilizar HTTP/1.1 Keep Alive |
As propriedades SSL do nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Protocolo | Não | Sim | SSL | O protocolo SSL a ser utilizado ao fazer um pedido HTTPS. |
Cifras SSL Permitidas | Não | Sim | Uma lista de cifras separadas por vírgulas a ser utilizada ao fazer um pedido SSL. O valor padrão de uma cadeia vazia significa a utilização de todas as cifras disponíveis. |
As propriedades Avançadas do nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Utilizar Toda a Mensagem como Pedido | Não | Não | Selecionada | Determina se todo o corpo da mensagem de entrada deve ser transmitido para o serviço da Web. Se você selecionar a caixa de opções, essa ação é executada. Se você limpar essa caixa de opções, deverá especificar Localização da Mensagem de Pedido na Árvore. |
Localização da Mensagem de Pedido na Árvore | Sim | Não | InputRoot | O local inicial do qual o fluxo de bits é criado para enviar o serviço da Web. Esta propriedade utiliza o formato de uma referência de campo ESQL. |
Substituir mensagem de entrada pela resposta de serviço da Web | Não | Não | Selecionada | Determina se a mensagem de resposta do serviço da Web substitui a cópia da mensagem de entrada como o conteúdo da mensagem de saída criada. Se você selecionar a caixa de opções, essa ação é executada. Se você limpar essa caixa de opções, deverá especificar Localização da Mensagem de Resposta na Árvore. |
Localização da Mensagem de Resposta na Árvore | Sim | Não | OutputRoot | O local inicial no qual os elementos analisados do fluxo de bits de resposta de serviços da Web são armazenados. Esta propriedade utiliza o formato de uma referência de campo ESQL. |
Gerar Cabeçalhos HTTP Padrão na Entrada | Não | Não | Selecionada | Determina se um HTTPRequestHeader é gerado. Se você selecionar a caixa de opções, essa ação é executada. Se você limpar esta caixa de opções, um HTTPRequestHeader válido deverá existir na mensagem de entrada. |
As propriedades de Erro do Nó HTTPRequest estão descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Substituir Entrada por Erro | Não | Não | Selecionada | Determina se o conteúdo da mensagem de entrada será substituído pelo conteúdo da mensagem de erro. Se você selecionar essa caixa de opções, a ação será executada. Se você limpar essa caixa de opções, deverá especificar Localização da Mensagem de Erro. |
Localização da mensagem de erro | Sim | Não | OutputRoot | O local inicial no qual os elementos analisados do fluxo de bits de erro de serviços da Web são armazenados. Esta propriedade utiliza o formato de uma referência de campo ESQL. |
As propriedades Padrão do nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Domínio de Mensagens | Não | Não | O domínio que será utilizado para analisar a mensagem de resposta recebida do serviço da Web. | |
Conjunto de Mensagens | Não | Não | O nome ou identificador do conjunto de mensagens no qual a mensagem de resposta está definida. | |
Tipo de Mensagem | Não | Não | O nome da mensagem de resposta. | |
Formato de Mensagem | Não | Não | O nome do formato físico da mensagem de resposta. |
As propriedades de Validação do nó HTTPRequest são descritas na tabela a seguir.
Consulte Propriedades de Validação para Mensagens no Domínio MRM para obter uma descrição completa destas propriedades.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Validar | Não | Sim | Nenhum | Determina se a validação ocorrerá. Os valores válidos são Nenhum, Conteúdo e Valor, Conteúdo e Herdar. |
Ação de Defeito | Não | Não | Exceção | O que acontece se a validação falhar. Você pode configurar essa propriedade somente se configurar Validar como Conteúdo ou Conteúdo e Valor. Os valores válidos são Rastreio do Usuário, Registro de Erros Local, Exceção e Lista de Exceção. |
Incluir Todas as Limitações do Valor | Não | Não | Selecionada | Essa propriedade não pode ser editada. A ação padrão, indicada pela seleção da caixa de opções, é que as verificações básicas de limitação de valor estão incluídas na validação Conteúdo e Valor. |
Corrigir | Não | Não | Nenhum | Essa propriedade não pode ser editada. |
As propriedades das Opções de Mensagens Gerais do nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Sincronização de Análise | Não | Não | On Demand | Esta propriedade controla quando uma mensagem de entrada é analisada.
Os valores
válidos são On
Demand,
Imediato e
Completo. Consulte Analisando On Demand para obter uma descrição completa dessa propriedade. |
Utilizar o Analisador Compacto MQRFH2C para o Domínio MQRFH2 | Não | Não | Não selecionada | Esta propriedade controla se o MQRFH2C Compact Parser, no lugar do analisador MQRFH2, é utilizado para cabeçalhos MQRFH2. |
As propriedades das Opções do Analisador XMLNSC para o nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Utilizar Analisador Compacto XMLNSC para o Domínio XMLNS | Não | Não | Não selecionada | ![]() ![]() |
Modo de Retenção de Conteúdo Misto | Não | Não | Nenhum | Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar texto misto em uma mensagem de entrada. Os valores válidos são Nenhum e Todos. A seleção de Todos significa que os elementos são criados para o texto misto. A seleção de Nenhum significa que o texto misto é ignorado e nenhum elemento é criado. |
Modo de Retenção de Comentários | Não | Não | Nenhum | Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar comentários em uma mensagem de entrada. Os valores válidos são Nenhum e Todos. Selecionar Tudo significa que são criados elementos para comentários. A seleção de Nenhum significa que os comentários são ignorados e nenhum elemento é criado. |
Modo de Retenção de Instruções de Processamento | Não | Não | Nenhum | Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar instruções de processamento na mensagem de entrada. Os valores válidos são Nenhum e Todos. Selecionar Tudo significa que são criados elementos para instruções de processamento. A seleção de Nenhum significa que as instruções de processamento são ignoradas e nenhum elemento é criado. |
As propriedades de Descrição do nó HTTPRequest são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Descrição Breve | Não | Não | Uma breve descrição do nó. | |
Descrição Longa | Não | Não | Texto que descreve a finalidade do nó no fluxo de mensagens. |