WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

HTTPRequest

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

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

Finalidade

O nó HTTPRequest interage com um serviço da Web, usando toda ou parte da mensagem de entrada como o pedido que é enviado a esse serviço. Você também pode configurar o nó para criar uma mensagem de saída a partir do 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 subsequentes no fluxo de mensagens.

Dependendo da configuração, esse nó constrói um pedido de HTTP ou HTTPS sobre SSL (HTTPS) 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 exigidos pela 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:

  • DFDL
  • XMLNSC
  • JSON
  • BLOB
  • MIME
  • MRM
  • XMLNS

O nó HTTPRequest está contido na caixa da paleta HTTP e representado no WebSphere® Message Broker Toolkit 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, depois envia uma resposta de volta, a qual geralmente é um SOAP ou outra mensagem de Serviço da Web em XML.

A URL tem o formato 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 no ambiente local. Os dados a serem enviados ao serviço da Web podem ser toda ou parte da árvore de mensagem, 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 de saída. 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 de Falha.

Se o pedido for enviado com sucesso pelo nó HTTPRequest, mas o serviço da Web não for bem-sucedido, o HTTPResponse será inserido na árvore de mensagens e propagado 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 a solicitação levar mais tempo que a duração especificada, ela seja propagada para o terminal de Falha 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 usado em qualquer fluxo de mensagens que precise enviar uma solicitação de HTTP. O exemplo mais comum é um fluxo de mensagem que chama o serviço da Web.

Para obter mais informações sobre os serviços da Web, consulte Processando mensagens do 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 de falha (Failure).

  • Erros que são retornados pelo servidor da Web. Esses erros são representados por códigos de status HTTP que estão fora do intervalo 100 - 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 de 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 êxito, as configurações nas várias guias no nó determinam o formato da mensagem de saída que é gerada e a resposta é roteada para o terminal de Saída do nó.

Os códigos de status de série 300 são para redirecionamento. Se a propriedade Seguir Redirecionamento de HTTP(s) for selecionada, o nó reenviará a solicitação 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. Entretanto, se uma das propriedades que especificam 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 na árvore Ambiente antes do nó HTTPRequest e, em seguida, copiá-la novamente na á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.

Todas as propriedades obrigatórias, para as quais você insere um valor, são marcadas com um asterisco.

Configure o nó HTTPRequest:

  1. Opcional: Na guia Descrição , digite uma Descrição curta, 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 a implementação falhará. 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 período de 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 de saída (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 de falha (Failure), se ele estiver conectado. Se o terminal de falha 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) 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 de erro (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. Selecione uma das opções para a propriedade Método HTTP. Os valores válidos são: POST, GET, PUT, DELETE e HEAD.
    5. Selecione uma das opções para a propriedade Usar Compactação para especificar a compactação do conteúdo do pedido de HTTP. Você pode selecionar gzip, zlib (deflate), deflate ou nenhum. O valor zlib (deflate) representa RFC 1950 e RFC 1951 combinados e deflate representa RFC 1951 somente. O valor padrão é none, isto é, o conteúdo da solicitação não é compactado.
  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. Ambas as extremidades de uma conexão SSL devem concordar com o protocolo a utilizar. Portanto, o protocolo selecionado deve ser um que seja aceito pelo servidor remoto. 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 que o handshake retorne ao protocolo SSLv2, onde o protocolo SSLv2 é suportado pelo provedor JSSE subjacente.
      • SSLv3. Essa opção tenta a conexão com o protocolo SSLv3 somente. O fallback para SSLv2 não é possível.
      • TLS. Essa opção tenta a conexão com o protocolo TLS somente. O fallback para SSLv3 ou SSLv2 não é possível.
    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.
    3. Use a propriedade SSLKeyAlias para especificar um alias de autenticação SSL para o lado do cliente de uma conexão HTTP. O servidor verifica uma lista de controle de acesso para esta chave do lado do cliente. O alias de chave que identifica a chave no keystore do broker ou do grupo de execução que será usado para a conexão SSL. Configure essa propriedade opcional se o keystore contiver mais de uma chave. O valor padrão "" (ou nenhum) significa que um alias de chave SSL não é usado. Qualquer outro valor de sequência identifica o alias.
  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. Se o campo estiver em branco, o valor padrão será BLOB. Escolha a partir das seguintes opções:
      • DFDL
      • XMLNSC
      • JSON
      • BLOB
      • MIME
      • MRM
      • XMLNS

      Também é possível especificar um analisador definido pelo usuário, se apropriado.

    2. Se você estiver usando o analisador DFDL, MRM ou XMLNSC no modo de validação, selecione o modelo de mensagem relevante na lista. Essa lista é preenchida com conjuntos de mensagens disponíveis quando você seleciona MRM ou XMLNSC como o domínio de mensagem ou com arquivos de esquema DFDL disponíveis ao selecionar DFDL como o domínio de mensagem.
    3. Se você estiver utilizando o analisador DFDL ou MRM, selecione a mensagem correta na lista em Mensagem. Essa lista é preenchida com mensagens definidas no modelo de mensagem que você selecionou.
    4. Se você estiver utilizando o analisador MRM, selecione o formato da mensagem a partir da lista em Formato Físico. Essa lista inclui todos os formatos físicos definidos para este modelo de mensagem.
  6. Na subguia Opções do Analisador:
    1. Analisar Tempo é, por padrão, configurado como On Demand, o que faz com que a análise da mensagem seja atrasadas. Para que a mensagem seja analisa imediatamente, consulte Analisando On Demand.
    2. Se você está utilizando o analisador XMLNSC, configure os valores para as propriedades que determinam como o analisador XMLNSC opera. Para obter informações adicionais, consulte Manipulando Mensagens no Domínio XMLNSC.
  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 é tratada.
    1. Para que toda a mensagem de erro do serviço da Web seja propagada como a mensagem de saída, deixe a opção Substituir entrada com 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. Especifique 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 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ída 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.

        É possível 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 de 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=ccsid do corpo da mensagem

        A menos que a mensagem de entrada esteja no domínio JSON, em que o padrão é:

        application/json; charset=ccsid do corpo da mensagem

        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 inclui os cabeçalhos de serviço da Web com valores padrão, se esses valores 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. O 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, nenhum serviço da Web será gerado. 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.
      Se você selecionou Usar Compactação ou Aceitar Respostas Compactadas por Padrão, os campos de cabeçalho HTTP Content-Encoding e Accept-Encoding serão preenchidos independentemente de você ter selecionado Gerar Cabeçalhos HTTP Padrão na Entrada:
      • Se o valor de Usar Compactação não for o padrão de Nenhum, o cabeçalho HTTP Content-Encoding será preenchido com esse valor e o fluxo de bits será compactado. Se o cabeçalho Content-Encoding já existir em um cabeçalho HTTP existente, esse campo será atualizado com o valor da propriedade Usar Compactação. Se o cabeçalho Content-Encoding existente já iniciar com a função compactação nomeada, nenhuma compactação ocorrerá. Se o cabeçalho Content-Encoding começar com deflate, a compactação não ocorrerá, independentemente de ZLIB (deflate)ou deflate estar selecionado.
      • Se você selecionou Aceitar Respostas Compactadas, o campo Accept-Encoding será preenchido. Se esse campo já existir em um cabeçalho HTTP existente, o valor existente substituirá a propriedade no nó. Entretanto, se uma resposta compactada for recebida, ela não será descompactada.
    4. Selecione a propriedade Aceitar Respostas Compactadas por Padrão para indicar se o pedido aceita respostas compactadas. Se você selecionar essa opção, o pedido poderá receber respostas com um Content-Encoding gzip ou deflate. Se tal resposta for recebida, o conteúdo será decodificado e o cabeçalho de Codificação do Conteúdo será removido. Se o Cabeçalho do Pedido não contiver um cabeçalho Aceitar Codificação, então selecionar esta opção configura o cabeçalho Aceitar Codificação para "gzip, deflate".
  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 de falha (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 Saída, Erro ou Falha 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 de erro, a mensagem será descartada. Se você não conectar o terminar Falha, o broker 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
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 (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ó.
Short description 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 Propriedade do Comando mqsiapplybaroverride
URL de serviço da Web Sim Sim   A URL do 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.
URLSpecifier
Tempo limite de pedido (seg) Sim Sim 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. O tempo limite pode levar um segundo a mais do que o valor especificado. timeoutForServer

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

Propriedade M C Padrão Descrição Propriedade do Comando mqsiapplybaroverride
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. httpProxyLocation
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. httpVersion
Ativar HTTP/1.1 keep-alive Não Sim Selecionado (se a Versão HTTP for 1.1) Utilize HTTP/1.1 Keep-Alive. enableKeepAlive
Método HTTP Não Não POST O método HTTP. Os valores válidos são POST, GET, PUT, DELETE e HEAD. Por padrão, o nó HTTPRequest usa o método HTTP POST quando 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.  
Use compactação Não Sim Nenhum(a) Esta propriedade controla se o conteúdo do pedido HTTP é compactado. É possível escolher um valor de nenhum, gzip, zlib (deflate) e deflate. Se o pedido for compactado, o cabeçalho de Codificação de Conteúdo será configurado para indicar que o conteúdo está compactado.

zlib (deflate) representa RFC 1950 + RFC 1951 combinados.

deflate representa RFC 1951 somente.

requestCompressionType

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

Propriedade M C Padrão Descrição Propriedade do Comando mqsiapplybaroverride
Protocolo Não Sim SSL O protocolo SSL a ser utilizado ao fazer um pedido HTTPS. protocol
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. allowedCiphers
Ativar verificação de nome do host do certificado SSL Não Sim Não Essa propriedade especifica se o nome do host do servidor que está recebendo a solicitação deve corresponder ao nome do host no certificado SSL. hostnameChecking
Alias de chave de autenticação de cliente SSL Não Sim "" (sequência vazia) Esta propriedade especifica um alias de autenticação SSL para o lado do cliente de uma conexão HTTP. Tomar o valor padrão significa que a primeira chave apropriada é escolhida para você automaticamente. keyAlias

As propriedades Análise de Mensagem de Resposta do nó HTTPRequest são descritas na tabela a seguir.

Propriedade M A O padrão Descrição
Domínio de mensagem Não Não BLOB O domínio usado para analisar a mensagem. Se o campo estiver em branco, o padrão será BLOB.
Modelo de mensagem Não Não Desmarcada O nome do local do arquivo de esquema do modelo de mensagem no qual a mensagem é definida. Essa lista é preenchida com todos os arquivos de esquema de modelo de mensagem disponível para o domínio de mensagem selecionado.
Message Não Não Desmarcada O nome ou local da raiz de mensagem em seu arquivo de esquema de modelo de mensagem. Essa lista é preenchida com todas as mensagens disponíveis definidas no modelo de mensagem que você selecionou.
Formato físico Não Não Desmarcada O nome do formato físico da mensagem. Se estiver utilizando o analisador MRM ou IDOC, selecione da lista o formato físico da mensagem que chega. Essa lista inclui todos os formatos físicos que você definiu para o modelo de mensagem selecionado. Se você configurar a propriedade Domínio de Mensagem como DataObject, poderá configurar esta propriedade como XML ou SAP ALE IDoc. Configure esta propriedade como SAP ALE IDoc quando precisar analisar um fluxo de bits a partir de uma origem externa e gere uma árvore de mensagens.

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.

Construir árvore utilizando tipos de dados de esquema XML Não Não Não selecionada Esta propriedade controla se o analisador XMLNSC cria elementos da sintaxe na árvore de mensagens com tipos de dados obtidos do esquema XML. Você pode selecionar esta propriedades apenas se configurar a propriedade Validar na guia Validação ou Conteúdo ou Conteúdo e Valor.
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.
Elementos opacos Não Não Em branco Essa propriedade é utilizada para especificar uma lista de elementos na mensagem de resposta que devem ser analisados em segundo plano pelo analisador XMLNSC. A análise de ignorados será desempenhada apenas se a validação não estiver ativada (ou seja, se a propriedade Validar for configurada para Nenhum); as entradas especificadas em Elementos Ignorados serão ignoradas se a validação estiver ativada.

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 Propriedade do Comando mqsiapplybaroverride
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.  
Aceitar respostas compactadas por padrão Não Sim Não selecionada Essa propriedade indica se o nó do pedido identifica respostas compactadas por padrão. Se o cabeçalho do pedido não contiver um cabeçalho Accept-Encoding e essa opção for selecionada, o nó definirá o cabeçalho Accept-Encoding para "gzip, deflate" e qualquer resposta compactada recebida será descompactada pelo nó.

Se a mensagem propagada para o nó Pedido incluir um cabeçalho Accept-Encoding, o fluxo de mensagem ou aplicativo cliente deverá identificar qualquer resposta compactada. Portanto, selecionar essa opção não afetará nesse caso.

acceptCompressedResponses

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 Propriedade do Comando mqsiapplybaroverride
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. validateMaster
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.  
As propriedades Monitoramento do nó são descritas na tabela a seguir.
Propriedade M P Default Descrição
Eventos Não Não Nenhum Eventos definidos para o nó são exibidos nesta guia. Por padrão, nenhum evento de monitoramento é definido em um nó do fluxo de mensagens. Utilize Incluir, Editar, e Excluir para criar, alterar ou excluir eventos de monitoração no nó; consulte Configurando fontes de eventos de monitoramento utilizando propriedades de monitoramento para detalhes.

É possível ativar e desativar eventos mostrados aqui selecionando ou desmarcando a caixa de opções Ativado.

Substituições do Ambiente Local

Você pode substituir dinamicamente valores de configuração no ambiente local 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;
TimeoutMillis Substitui a propriedade Tempo limite do pedido (seg) no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.TimeoutMillis = 5000;
Essa propriedade define o tempo limite em milissegundos. O valor de TimeoutMillis substituirá o valor de Tempo Limite se os dois valores estiverem configurados.
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';
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 Especifica 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';
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;
QueryString Permite a configuração dos parâmetros de cadeia de consulta de saída. Cada parâmetro deve ser definido individualmente. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.QueryString.param1 = 'my"Value"1';
SET OutputLocalEnvironment.Destination.HTTP.QueryString.param2 = 'my"Value"2';
O ESQL acima resulta na seguinte cadeia de consultas sendo codificada (de acordo com http://tools.ietf.org/html/rfc3986) e enviada com o pedido de saída:
?param1=my%22Value%221&param2= my%22Value%222
Se a URL de destino já tiver um ou mais parâmetros de consulta, parâmetros adicionais especificados aqui serão anexados à lista existente.
QueryStringCCSID Especifica que, antes da codificação, os parâmetros de sequência da consulta devem ser convertidos em um conjunto de caracteres diferente do padrão, que é UTF-8. Qualquer parâmetro de sequência de consulta é convertido primeiro no CCSID especificado antes da sequência resultante ser codificada, de acordo com a RFC3986. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.QueryStringCCSID = 943;
O ESQL acima resulta em qualquer parâmetro QueryString sendo convertido na página de códigos 943 antes de ser codificado. Nota: Qualquer parâmetro de sequência de consulta deve conter os dados em unicode.
Compactação Substitui a propriedade Usar compactação no nó. Por exemplo:
SET OutputLocalEnvironment.Destination.HTTP.Compression =
 'gzip';
Para configurar um tamanho mínimo (em bytes) no qual a compactação é aplicada, use a seguinte substituição:
SET OutputLocalEnvironment.Destination.HTTP.MinimumCompressionSize = 1048576;

Trabalhando com Dados WrittenDestination

Depois que o pedido é feito, a pasta WrittenDestination no ambiente local é atualizada com o URI para o qual o pedido foi enviado e os detalhes da compactação (se usada). Um WrittenDestination para um nó HTTPRequest tem o seguinte formato, com Compactação presente somente se ela for usada:
WrittenDestination = (
   HTTP  = (
      RequestURL = 'http://127.0.0.1:7800/HTTPFLOW' (CHARACTER)
      Compression = (
        OriginalSize = 53 (INTEGER)
        CompressedSize = 71 (INTEGER)
      )
   )
)
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:17


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ac04595_