HTTPRequest

Utilize o nó HTTPRequest para interagir com um serviço da Web.

Este tópico contém as seguintes seções:

Propósito

O nó HTTPRequest interage com um serviço da Web, utilizando toda ou parte da mensagem de entrada como o pedido que é 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 os nós subseqüentes no fluxo de mensagens.

Dependendo da configuração, esse nó constrói um pedido HTTP ou HTTPS (HTTP sobre SSL) do conteúdo especificado da mensagem de entrada e envia esse pedido ao serviço da Web. O nó recebe a resposta do serviço da Web e analisa a resposta para inclusão na árvore de saída. O nó gerará cabeçalhos HTTP, se eles forem requeridos por sua configuração.

Você pode utilizar esse nó em um fluxo de mensagens que contém ou não um nó HTTPInput ou HTTPReply.

O nó HTTPRequest manipula mensagens nos seguintes domínios de mensagem:

  • MRM
  • XML
  • XMLNS
  • XMLNSC
  • JMSMap
  • JMSStream
  • MIME
  • BLOB
  • IDOC

O nó HTTPRequest está contido na caixa da paleta HTTP e representado no ambiente de trabalho pelo seguinte ícone:

 Ícone do nó HTTPRequest

Utilizando o Nó HTTPRequest para Emitir um Pedido para o Serviço da Web

Um pedido HTTP tem duas partes:
  1. A URL de um serviço.
  2. Um fluxo de dados que o servidor remoto processa, em seguida, envia uma resposta de volta, que é freqüentemente uma mensagem SOAP ou de outro serviço da Web em XML.

O formato da URL é http://<address>[:port]/<function>; por exemplo, http://localhost:7080/request. Essa URL pode ser especificada estaticamente nos parâmetros do nó HTTPRequest como um campo na própria mensagem ou como um campo em LocalEnvironment. Os dados a serem enviados para o serviço da Web podem ser toda ou parte da árvore de mensagens, conforme especificado nas propriedades do nó HTTPRequest.

Os dados devem estar no formato CCSID 1208 para a maioria dos pedidos. A resposta pode substituir a mensagem de entrada ou ser inserida na árvore de mensagens; o local é especificado nos parâmetros do nó HTTPRequest. O domínio da resposta é XMLNS. Se o pedido for bem-sucedido, o HTTPResponse será inserido na frente da árvore de mensagens, a resposta colocada no local especificado na árvore e o pedido propagado para o terminal Out. Se o nó HTTPRequest não puder emitir o pedido, uma ExceptionList será inserida na árvore de mensagens, e a árvore será propagada para o terminal Failure.

Se o pedido for enviado com sucesso pelo nó HTTPRequest, mas o serviço da Web não for bem-sucedido, a HTTPResponse será inserida na árvore de mensagens e propagada para o terminal Error. O parâmetro de local da mensagem de erro no nó HTTPRequest especifica onde, na árvore, a resposta será colocada, por exemplo, OutputRoot.XMLNS.error. Talvez você precise utilizar um nó Compute para converter essa resposta para uma página de códigos apropriada para que os dados possam ser exibidos, por exemplo:
Set OutputRoot.XMLNS.error850 = CAST(InputRoot.XMLNS.error.BLOB as CHAR CCSID 850);
Para informações sobre HTTP, consulte Protocolo de Transporte de Hipertexto - HTTP/1.1. Para obter mais informações sobre códigos de retorno HTTP, consulte Códigos de Resposta HTTP.

Você pode especificar um intervalo de tempo limite, de modo que se o pedido levar mais tempo que a duração especificada, ele seja propagado para o terminal Error com uma mensagem apropriada. Para cada pedido que o nó HTTPRequest processa, ele abre uma conexão e, em seguida, fecha-a quando a resposta é retornada. Se o intervalo de tempo limite for especificado, o soquete é fechado após o intervalo. Esse fechamento assegura que um pedido obtenha apenas a resposta correta, e todos os dados de resposta a um pedido que tiver o tempo limite esgotado são descartados.

Você pode utilizar o proxy HTTP para rotear um pedido por meio de um site intermediário. Você pode executar as ferramentas como proxy para ver o pedido e a resposta, e portanto, depurar os fluxos. O destino HTTP é como visto pelo proxy; se você especificar o destino HTTP do host local, e o proxy HTTP estiver sendo executado em um computador diferente, o pedido será roteado para o computador proxy remoto, não para o computador do qual o pedido original foi emitido.

Utilizando o Nó HTTPRequest em um Fluxo de Mensagens

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 adicionais sobre os aplicativos de serviço da Web, consulte Trabalhando com Aplicativos de Serviço da Web.

Tratamento de erros

O nó interage diretamente com um serviço externo utilizando TCP/IP; portanto, ele pode ter os seguintes tipos de erro:

  • Erros que são gerados pelo TCP/IP, por exemplo, nenhuma rota para o host ou conexão rejeitada.

    Se o nó detectar esses erros, ele gerará uma exceção, preencherá a lista de exceções com as informações de erro recebidas e roteará a mensagem de entrada inalterada para o terminal Failure.

  • Erros retornados pelo servidor da Web. Esses erros são representados por códigos de status HTTP que estão fora do intervalo 100 a 299. Se o nó detectar esses erros, ele roteia a resposta para o terminal Error enquanto segue as propriedades especificadas na guia Erro.

    A resposta é produzida como uma mensagem BLOB, já que o nó não pode determinar qual formato a resposta terá. Se você não tiver configurado esse nó para identificar o redirecionamento, as mensagens com código de status de redirecionamento (3xx) também serão identificadas da mesma forma.

Códigos de Resposta HTTP

O nó HTTPRequest trata os 100 códigos de status das séries como uma resposta 'contínua', descarta a resposta atual e aguarda outras respostas do servidor da Web.

Os códigos de status de série 200 são tratados como sucesso, e a configuração de vários guias no nó determinal o formato da mensagem de saída que é gerada. e a resposta é roteada ao terminal Out do nó.

Os códigos de status de série 300 são para redirecionamento. Se a propriedade Seguir Redirecionamento HTTP(s) for selecionada, o nó não reenviará o pedido para o novo destino especificado na resposta recebida. Se a propriedade Seguir Redirecionamento HTTP (s) não for selecionada, os códigos são tratados como erro, como descrito no Utilizando o Nó HTTPRequest para Emitir um Pedido para o Serviço da Web. Para obter mais informações sobre códigos de retorno HTTP, consulte Códigos de Resposta HTTP.

Os códigos de status das séries 400 e 500 são erros e são tratados conforme descrito em Utilizando o Nó HTTPRequest para Emitir um Pedido para o Serviço da Web. Para obter mais informações sobre códigos de retorno HTTP, consulte Códigos de Resposta HTTP.

Manipulando Cabeçalhos

Se você selecionar Substituir mensagem de entrada pela resposta do serviço da Web ou Substituir entrada pelo erro, o cabeçalho da mensagem de entrada (o cabeçalho que pertence à mensagem assim que ela chega ao terminal In do nó HTTPRequest) não será 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 na mensagem (após Propriedades) propagado do nó. Essa ação é executada independentemente das opções escolhidas. Portanto, para a resposta do nó HTTPRequest ser colocada em uma fila do WebSphere MQ, manipule os cabeçalhos para que um MQMD seja o primeiro cabeçalho (depois das Propriedades).

Se você estiver substituindo a mensagem de entrada por uma resposta, poderá copiar o MQMD da mensagem de entrada para a árvore ambiente antes do nó HTTPRequest e, em seguida, copiá-la novamente para a árvore de mensagens depois do 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.

O exemplo a seguir contém o ESQL que remove o HTTPHeader:
SET OutputRoot = InputRoot;
SET OutputRoot.HTTPResponseHeader = NULL; 
O exemplo a seguir contém o ESQL para mover o HTTPHeader, preservando assim as informações que ele fornece:
SET OutputRoot = InputRoot;
DECLARE HTTPHeaderRef REFERENCE TO OutputRoot.HTTPResponseHeader;
DETACH HTTPHeaderRef;
ATTACH HTTPHeaderRef TO OutputRoot.MQMD AS NEXTSIBLING;

Configurando o Nó HTTPRequest

Quando tiver colocado uma instância do nó HTTPRequest em um fluxo de mensagens, você poderá configurá-lo; consulte Configurando um Nó do Fluxo de Mensagens. As propriedades do nó são exibidas na visualização Propriedades. Para exibir as propriedades do nó no diálogo Propriedades, dê um clique duplo no nó ou clique com o botão direito no nó e clique em Propriedades.

Todas as propriedades obrigatórias para as quais é necessário digitar um valor (aquelas que não têm um valor padrão definido) são marcadas com um asterisco.

Configure o nó HTTPRequest:

  1. Opcional: Na guia Descrição , digite uma Descrição breve, uma Descrição longa, ou ambas. Você também pode renomear o nó nessa guia.
  2. Na guia Básico:
    1. O nó HTTPRequest determina a URL para o serviço da Web para o qual ele envia um pedido. Defina uma das três opções a seguir; o nó as verifica na ordem mostrada (ou seja, a primeira sempre substitui a segunda, a segunda substitui a terceira):
      1. X-Original-HTTP-URL no cabeçalho HTTPRequest na mensagem de entrada
      2. LocalEnvironment.Destination.HTTP.RequestURL na mensagem de entrada
      3. A propriedade URL do Serviço da Web

      As duas primeiras opções fornecem métodos dinâmicos de definição de uma URL para cada mensagem de entrada à medida que passam pelo fluxo de mensagens. Para utilizar uma dessas opções, inclua um nó Compute no fluxo de mensagens, antes do nó HTTPRequest, para criar e inicializar o valor exigido.

      A terceira opção fornece um valor fixo para cada mensagem recebida nesse nó. Defina 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 ocorrerá uma falha na implementação. Assegure 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ó utiliza a configuração padrão da propriedade URL do Serviço da Web.

      Se uma URL começar 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ó.

    2. Defina o valor da propriedade Tempo Limite do Pedido (segundos), que é o tempo, em segundos, em que o nó aguarda uma resposta do serviço da Web. Se for recebida uma resposta nesse período, ela será propagada através do terminal Out para o restante do fluxo de mensagens. Se a resposta não for recebida nesse período, a mensagem de entrada será propagada através do terminal Failure, se ele estiver conectado. Se o terminal Failure não estiver conectado e uma resposta não for recebida nesse período, será gerada uma exceção.
  3. Na guia Configurações de HTTP:
    1. Em Local do Proxy HTTP(S), defina o local do servidor proxy para o qual os pedidos são enviados.
    2. Selecione Seguir Redirecionamento HTTP(S) (Follow HTTP(S) redirection) para especificar como o nó manipula as respostas de serviços da Web que contêm um código de status HTTP de 300 a 399:
      • Se você selecionar a caixa de opções, o nó seguirá o redirecionamento fornecido na resposta e emitirá novamente o pedido de serviço da Web para a nova URL (incluída no conteúdo da mensagem).
      • Se você limpar a caixa de opções, o nó não seguirá o redirecionamento fornecido. A mensagem de resposta é propagada ao terminal Error.
    3. Selecione uma das opções para a propriedade Versão de HTTP. Os valores válidos são: 1.0 ou 1.1.

      Se você selecionar a propriedade Versão de HTTP com o valor 1.1, também poderá selecionar Permitir Ativação Contínua de HTTP/1.1.

    4. Início da mudançaSelecione uma das opções para a propriedade Método HTTP. Os valores válidos são: POST, GET, PUT, DELETE e HEAD.Fim da mudança
  4. Na guia SSL, se você quiser utilizar os pedidos HTTPS (HTTP em SSL), defina os valores para os pedidos HTTPS:
    1. Especifique a propriedade Protocolo que você deseja utilizar para fazer o pedido. Ambos as extremidades de uma conexão SSL devem concordar com o protocolo a ser utilizado; então, o protocolo escolhido deve ser um que o servidor remoto possa aceitar. As opções a seguir estão disponíveis:
      • SSL. Essa opção é padrão. Essa opção tenta a conexão utilizando o protocolo SSLv3 primeiro, mas permite o retorno ao protocolo SSLv2 como protocolo de reconhecimento, quando o protocolo SSLv2 é suportado pelo provedor JSSE subjacente.
      • SSLv3. Essa opção tenta a conexão com o protocolo SSLv3 somente. O retorno ao SSLv2 não é permitido.
      • TLS. Essa opção tenta a conexão com o protocolo TLS somente. O retorno ao SSLv3 ou SSLv2 não é permitido.
    2. Defina a propriedade Cifras de SSL Permitidas. Utilize esta configuração para especificar um único código (como SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA) ou uma lista de códigos que são os únicos utilizados pela conexão. Esse conjunto de cifras deve incluir uma ou mais copiadas pelo servidor remoto. Uma vírgula é utilizada como um separador entre as cifras. O valor padrão é uma cadeia vazia, que permite ao nó utilizar qualquer uma ou todas as cifras disponíveis durante o protocolo de reconhecimento de conexão SSL. Esse método permite maior escopo para estabelecer uma conexão SSL bem-sucedida.
  5. Na guia Análise de Mensagem de Resposta, defina valores para as propriedades que descrevem o domínio de mensagem, o conjunto de mensagens, o tipo de mensagens e o formato de mensagens que o nó utiliza para determinar como analisar a mensagem de resposta retornada pelo serviço da Web. 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.
    1. Em Domínio de Mensagem, selecione da lista o nome do analisador que está sendo utilizado. Escolha a partir das seguintes opções:
      • MRM
      • XML
      • XMLNS
      • XMLNSC
      • JMSMap
      • JMSStream
      • MIME
      • BLOB
      • IDOC
    2. Se estiver utilizando o analisador MRM ou IDOC, selecione o conjunto de Mensagens relevante na lista. Esta lista é preenchida com conjuntos de mensagens disponíveis ao selecionar MRM ou IDOC como o domínio de Mensagem.

      Deixe Conjunto de Mensagens em branco para os analisadores XML, XMLNS, XMLNSC, JMS MIME e BLOB.

    3. Se você estiver utilizando o analisador MRM, selecione a mensagem correta na lista em Tipo de Mensagem. Esta lista é ocupada com mensagens que estão definidas no Conjunto de mensagens que você selecionou.

      Deixe Tipo de Mensagem em branco para os analisadores XML, XMLNS, XMLNSC, JMS, MIME, BLOB e IDOC.

    4. Se você estiver utilizando o analisador MRM ou IDOC, selecione o formato da mensagem na lista em Formato da Mensagem. Esta lista inclui todos os formatos físicos que você definiu para este Conjunto de Mensagens.

      Deixe Formato de Mensagem em branco para os analisadores XML, XMLNS, XMLNSC, JMS, MIME e BLOB.

  6. Na guia Opções de Analisadores, Analisar Tempo é, por padrão, definido como On Demand. Esse valor causa o atraso da validação até que ela seja analisada pela análise parcial. Se você alterar esse valor para Imediato (Immediate), a análise parcial será substituída e tudo o que estiver na mensagem será analisado e validado, exceto aqueles tipos complexos com uma composição de Opção (Choice) ou Mensagem (Message) que não possam ser resolvidos no momento. Se você alterar esse valor para Completo (Complete), a análise parcial será substituída e tudo que estiver na mensagem será analisado e validado; tipos complexos com uma composição de Opção (Choice) ou Mensagem (Message) que não podem ser resolvidos no momento causam falha de validação.
  7. Na guia Tratamento de Erros, defina os valores para as propriedades que determinam como uma mensagem de erro retornada pelo serviço da Web é manipulada:
    1. Para que toda a mensagem de erro do serviço da Web seja propagada como a mensagem de saída, deixe Substituir Entrada por Erro selecionada (a configuração padrão).

      Para 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, desmarque Substituir Entrada por Erro e configure a propriedade Local 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).

    2. No campo Local da Mensagem de Erro, digite o local de início (na árvore de mensagens de saída) no qual os elementos analisados do fluxo de bits da mensagem de erro do serviço da Web estão armazenados. Essa propriedade é necessária somente se você tiver desmarcado Substituir Entrada por Erro.

      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.XMLNSC.ABC.DEF
      ou
      Environment.WSError

      Se você selecionar Substituir Entrada por Erro, essa propriedade é ignorada.

  8. Na guia Avançado, defina os valores para as propriedades Avançadas que descrevem a estrutura e o conteúdo do pedido de serviço da Web e da resposta:
    1. Especifica o conteúdo da mensagem do pedido que é enviado para o serviço da Web:
      • Para que a mensagem de pedido seja todo o corpo da mensagem de entrada, deixe Utilizar mensagem de entrada inteira como pedido selecionada (a configuração padrão).

        Para que a mensagem de pedido contenha um subconjunto da mensagem de entrada, desmarque Utilizar mensagem de entrada inteira como pedido e configure a propriedade Local da mensagem de pedido na árvore.

      • No campo Local da mensagem de pedido na árvore, digite o local de início do qual o conteúdo da árvore de mensagens de entrada é copiado para a mensagem de pedido. Essa propriedade é necessária somente se você tiver desmarcado Utilizar mensagem de entrada inteira como pedido. O nó cria uma nova mensagem de pedido e copia as partes especificadas da mensagem de entrada (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. Por exemplo, insira:

        InputRoot.XMLNSC.ABC

        Se você selecionar Utilizar mensagem de entrada inteira como entrada, essa propriedade é ignorada.

      Quando o conteúdo da árvore de mensagem apropriado for analisado para criar um fluxo de bits, as propriedades de mensagem (Domínio de Mensagem, Conjunto de Mensagens, Tipo de Mensagem e Formato de Mensagem) que estão associadas ao corpo da mensagem de entrada e armazenadas na pasta Propriedades serão utilizadas.

    2. Especifique o conteúdo da mensagem de saída que é propagada para o próximo nó no fluxo de mensagens:
      • Para que toda a mensagem de resposta do serviço da Web seja propagada como a mensagem de saída, deixe Substituir mensagem de entrada por resposta do serviço da Web selecionada (a configuração padrão).

        Para que a mensagem de resposta do serviço da Web seja incluídas na mensagem de saída com parte do conteúdo da mensagem de entrada, desmarque Substituir mensagem de entrada por resposta do serviço da Web e configure a propriedade Local 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).

      • No campo Local da mensagem de resposta na árvore, digite o local de início (na árvore de mensagens de saída) no qual os elementos analisados do fluxo de bits da mensagem de resposta do serviço da Web estão armazenados. Essa propriedade é necessária somente se você tiver desmarcado Substituir mensagem de entrada por resposta do serviço da Web.

        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.XMLNSC.ABC.DEF
        ou
        Environment.WSReply

        Se você selecionar Substituir mensagem de entrada por resposta de serviço da Web, essa propriedade é ignorada.

      Quando o fluxo de bits de resposta for analisado para criar o conteúdo da árvore de mensagens, as propriedades de mensagem (Domínio de Mensagem, Conjunto de Mensagens, Tipo de Mensagem, e Formato de Mensagem), especificadas nas propriedades Análise de Mensagem de Resposta dos nós serão utilizadas.

    3. Para que o nó gere um HTTPRequestHeader para a mensagem de pedido, deixe Gerar cabeçalhos HTTP padrão da entrada selecionada (a configuração padrão).

      Se não quiser que o nó gere um HTTPRequestHeader para a mensagem de pedido, desmarque Gerar cabeçalhos HTTP padrão da entrada. Para controlar o conteúdo de HTTPRequestHeader incluso na mensagem de pedido, inclua um nó Compute que tem um HTTPRequestHeader na mensagem de entrada antes desse nó HTTPRequest no fluxo de mensagens e desmarque a caixa de opção.

      • Se você selecionou Gerar cabeçalhos HTTP padrão a partir da entrada e a mensagem de entrada incluir um HTTPRequestHeader, o nó HTTPRequest irá extrair os cabeçalhos de serviço da Web do HTTPRequestHeader de entrada e incluirá qualquer cabeçalho de serviço da Web exclusivo, exceto Host (consulte a tabela a seguir), que está presente em um HTTPInputHeader, se existir um na mensagem de entrada. (Um HTTPInputHeader pode estar presente se a mensagem de entrada foi recebida de um serviço da Web pelo nó HTTPInput.)

        O nó HTTPRequest também inclui os cabeçalhos do serviço da Web mostrados na tabela a seguir, com valores padrão, se eles não estiverem presentes no HTTPRequestHeader ou no HTTPInputHeader.

        Cabeçalho Valor Padrão
        SOAPAction "" (cadeia vazia)
        Content-Type text/xml; charset=utf-8
        Host O nome do host para o qual o pedido deve ser enviado.

        O nó HTTPRequest também inclui o cabeçalho opcional Conteúdo-Comprimento com o valor correto calculado, mesmo se ele não estiver presente no HTTPRequestHeader ou no HTTPInputHeader.

      • Se você selecionou Gerar cabeçalhos HTTP padrão a partir da entrada e a mensagem de entrada não incluir um HTTPRequestHeader, o nó HTTPRequest irá extrair os cabeçalhos do serviço da Web, exceto Host, do HTTPInputHeader (se ele estiver presente na mensagem de entrada). O nó HTTPRequest incluirá os cabeçalhos de serviços da Web exigidos com valores padrão, se eles não estiverem presentes no HTTPInputHeader.
      • Se você limpou Gerar Cabeçalhos HTTP Padrão na Entrada e a mensagem de entrada incluir um HTTPRequestHeader, o nó extrairá todos os cabeçalhos de serviços da Web presentes no HTTPRequestHeader de entrada. Este nó não verifica a presença de um HTTPInputHeader na mensagem de entrada e não adiciona os cabeçalhos de serviços da Web requeridos se eles não forem fornecidos pelo HTTPRequestHeader de entrada.
      • Se você limpou Gerar Cabeçalhos HTTP Padrão na Entrada e a mensagem de entrada não incluir um HTTPRequestHeader, não serão gerados cabeçalhos de serviços da Web. O nó HTTPRequest não verifica a presença de um HTTPInputHeader na mensagem de entrada e não inclui nenhum cabeçalho de serviço da Web exigido. A mensagem de pedido é propagada para o serviço da Web sem um HTTPRequestHeader. Essa ação geralmente faz com que seja gerado um erro pelo serviço da Web, a menos que o serviço da Web esteja configurado para identificar o conteúdo da mensagem.
  9. Na guia Validação, defina as propriedades Validação se você quiser que o analisador valide o corpo das mensagens de resposta em relação ao Conjunto de Mensagens. (Se uma mensagem for propagada para o terminal Failure do nó, ela não será validada). Essas propriedades não fazem com que a mensagem de entrada seja validada. É esperado que, se tal validação for requerida, ela já tenha sido executada pelo nó input ou por um nó de validação anterior.

    Para obter mais detalhes, consulte Validando Mensagens e Propriedades de Validação.

Conectando os Terminais de Saída a Outro Nó

Conecte o terminal Out, Error ou Failure desse nó em outro nó no fluxo de mensagem para processar a mensagem posteriormente, para processar erros ou para enviar a mensagem para um destino adicional. Se você não conectar o terminal Error, a mensagem será descartada. Se você não conectar o terminal Failure, o intermediário fornecerá o processamento de erro padrão. Consulte Tratando Erros em Fluxos de Mensagens.

Terminais e Propriedades

Os terminais do nó HTTPRequest são descritos na tabela a seguir.

Terminal Descrição
In O terminal de entrada que aceita a mensagem para processamento pelo nó.
Failure O terminal de saída para o qual a mensagem será roteada se for detectado um defeito durante o processamento no nó.
Out 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.
Error 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 (s), é roteado.

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 painel 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 broker para implementá-lo).

As propriedades Descrição do nó HTTPRequest são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Nome do Nó Não Não O tipo de nó, HTTPRequest O nome do nó.
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.

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
  • http://<nome_do_host> deve ser especificado.
  • <port> tem um padrão de 80. Se você especificar um valor, deverá incluir : antes do número da porta.
  • <path> tem um padrão de /. Se você especificar um valor, deverá inclui / antes do caminho.
Tempo limite de pedido (seg) 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.

As propriedades Configurações HTTP do nó HTTPRequest são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Local de proxy HTTP(S) Não Sim   O servidor proxy para o qual os pedidos são enviados. Esse valor deve estar na forma nome_do_host:porta.
Redirecionamento do fluxo HTTP(S) Não Não Não Selecionada 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 Selecionado (se a Versão HTTP for 1.1) Utilize HTTP/1.1 Keep-Alive.
Método HTTP Início da mudançaNãoFim da mudança Início da mudançaNãoFim da mudança Início da mudançaPOSTFim da mudança Início da mudançaO método HTTP. Os valores válidos são POST, GET, PUT, DELETE e HEAD. Por padrão, o nó HTTPRequest utiliza o método HTTP POST quando ele se conecta ao servidor da Web remoto. HEAD é usado para determinar se um serviço está disponível- por exemplo, por um dispatcher de rede tentando descobrir quais servidores estão disponíveis e irá enviar de volta os cabeçalhos corretos (incluindo conteúdo-comprimento) mas sem dados de corpo. Fim da mudança

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 Análise de Mensagem de Resposta do nó HTTPRequest são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Domínio de mensagem 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 Opções do Analisador do nó HTTPRequest são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Cronometragem de análise (Parse timing) Não Não On Demand Essa propriedade controla quando uma mensagem de resposta é analisada. Os valores válidos são On Demand, Imediato e Completo.

Para obter uma descrição completa desta propriedade, consulte Analisando On Demand.

Utilizar analisador compacto XMLNSC para domínio XMLNS Não Não Não Selecionada Essa propriedade controla se o Analisador Compacto XMLNSC (XMLNSC Compact Parser) é utilizado para mensagens no Domínio XMLNS (XMLNS Domain). Se você definir essa propriedade, os dados da mensagem de resposta serão exibidos em XMLNSC nos nós que estão conectados ao terminal de saída, quando o cabeçalho MQRFH2 de entrada ou o domínio das propriedades Análise de Mensagem de Resposta for XMLNS.
Reter conteúdo misto (Retain mixed content) Não Não Não Selecionada Essa propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar texto misto em uma mensagem de resposta. Se você selecionar a caixa de opções, serão criados elementos para texto misto. Se você desmarcar a caixa de opções, texto misto será ignorado e nenhum elemento será criado.
Reter comentários (Retain comments) Não Não Não Selecionada Essa propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar comentários em uma mensagem de resposta. Se você selecionar a caixa de opções, serão criados elementos para comentários. Se você desmarcar a caixa de opções, comentários serão ignorados e nenhum elemento será criado.
Reter instruções de processamento (Retain processing instructions) Não Não Não Selecionada Essa propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar instruções de processamento em uma mensagem de resposta. Se você selecionar a caixa de opções, serão criados elementos para instruções de processamento. Se você desmarcar a caixa de opções, instruções de processamento serão ignoradas e nenhum elemento será criado.

As propriedades Tratamento de Erros do nó HTTPRequest são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Substituir entrada com erro Não Não Selecionada Se você selecionar essa caixa de opções, o conteúdo da mensagem de entrada será substituído pelo conteúdo da mensagem de erro. 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 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 Se você selecionar essa caixa de opções, todo o corpo da mensagem de entrada será transmitido ao serviço da Web. Se você desmarcar essa caixa de opções, deverá selecionar Local 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 Se você selecionar essa caixa de opções, a mensagem de resposta do serviço da Web substituirá a cópia da mensagem de entrada como o conteúdo da mensagem de saída criada. Se você desmarcar essa caixa de opções, deverá selecionar Local 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 Se você selecionar essa caixa de opções, um HTTPRequestHeader será gerado. Se você limpar esta caixa de opções, um HTTPRequestHeader válido deverá existir na mensagem de entrada.

As propriedades Validação do nó HTTPRequest são descritas na tabela a seguir.

Para obter uma descrição completa dessas propriedades, consulte Propriedades de Validação.

Propriedade M C Padrão Descrição
Validar Não Sim Nenhuma Essa propriedade controla se a validação ocorre. Os valores válidos são Nenhum, Conteúdo e Valor, Conteúdo e Herdar.
Ação de falha Não Não Exceção Essa propriedade controla o que acontecerá 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ções.
Inclusão de todos Valores de Tipo 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 são incluídas na validação Conteúdo e Valor (Content and Value.
Correção Não Não Nenhuma Essa propriedade não pode ser editada.
Início da mudança

Substituições de LocalEnvironment

Você pode substituir dinamicamente valores de configuração no LocalEnvironment da mesma maneira que valores de configuração em outros elementos de uma mensagem. O seguinte valor pode ser configurado em LocalEnvironment.Destination.HTTP.
Configuração Descrição
RequestURL Substitui a propriedade URL do serviço da Web no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://ibm.com/abc/';
Tempo Limite Substitui a propriedade Tempo limite do pedido (seg) no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.Timeout = 42;
ProxyURL Substitui a propriedade Local do proxy HTTP(S) no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.ProxyURL = 'my.proxy';
RequestLine.RequestURI Substitui a RequestURI, que é o caminho após a URL e a porta. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.RequestURI = '/abc/def?x=y&g=h';
RequestLine.HTTPVersion Substitui a propriedade Versão de HTTP no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.HTTPVersion = 'HTTP/1.1';
KeepAlive Substitui a propriedade Ativar HTTP/1.1 keep-alive no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.KeepAlive = TRUE;
RequestLine.Method Substitui a propriedade método HTTP no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'GET';
SSLProtocol Substitui o SSLProtocol. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.SSLProtocol = 'TLS';

Os valores válidos são: SSL, SSLv3 e TLS.

SSLCiphers Substitui a propriedade Cifras SSL Permitidas no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.SSLCiphers = 'SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA';
ProxyConnectHeaders Início da mudançaEspecifica cabeçalhos adicionais que serão utilizados caso o pedido de saída seja uma conexão SSL através de um proxy. Estes cabeçalhos adicionais são enviados juntamente com o pedido inicial CONNECT ao proxy. Por exemplo, você poderá enviar informações sobre autenticação de proxy para um servidor proxy quando estiver utilizando o SSL. Múltiplos cabeçalhos podem ser enviados mas cada um deve ser separado por um retorno de carro e um avanço de linha (ASCII 0x0D 0x0A) de acordo com o RFC2616; por exemplo:
DECLARE CRLF CHAR CAST(X'0D0A' AS CHAR CCSID 1208);     
SET OutputLocalEnvironment.Destination.HTTP.ProxyConnectHeaders =
'Proxy-Authorization: Basic Zm5lcmJsZTpwYXNzd29yZA==' || CRLF || 
'Proxy-Connection: Keep-Alive' || CRLF;
Esta configuração é utilizada apenas se for um pedido SSL através de um servidor proxy. Para enviar informações sobre autenticação de proxy para um pedido não-SSL, especifique os cabeçalhos individuais na pasta HTTPRequestHeader, conforme mostrado nos exemplos a seguir:
SET OutputRoot.HTTPRequestHeader."Proxy-Authorization" = 'Basic Zm5lcmJsZTpwYXNzd29yZA==';
SET OutputRoot.HTTPRequestHeader."Proxy-Connection" = 'Keep-Alive';
Fim da mudança
UseFolderMode Configura o UseFolderMode. Utilize para geração de fluxo de bits; para certos analisadores isto altera o fluxo de bits de saída. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.UseFolderMode = TRUE;

Trabalhando com Dados WrittenDestination

Após a efetivação do pedido, a pastaWrittenDestination em LocalEnvironment é atualizada com a URI para a qual o pedido foi enviado. Um WrittenDestination para um nó HTTPRequest possui o seguinte formato:
WrittenDestination = (
   HTTP  = (
      RequestURL = 'http://server:port/folder/page'
   )
)
Fim da mudança
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:41

ac04595_