Trabalhando com Fluxos HTTP

Este tópico fornece informações que podem ser úteis se você estiver utilizando os fluxos de mensagens HTTP para interagir com os serviços da Web. Você pode achar útil ler isto em conjunto com a seção Cenários de Serviços da Web subseqüente.

HTTPS
Para obter ajuda sobre como utilizar HTTPS, consulte Implementando a Autenticação SSL.
Definindo o Código de Status de HTTP para uma Resposta
O código de Status de HTTP padrão é 200, que significa OK. Isso pode ser modificado de várias maneiras:
  • Se a propriedade Gerar Cabeçalhos de HTTP Padrão da Entrada ou Resposta estiver selecionada, o nó HTTPReply varrerá os cabeçalhos de respostas de HTTP para que um código de status o transmita. Os cabeçalhos de resposta são criados pelo nó HTTPRequest e representam os cabeçalho de HTTP fornecidos como parte de uma resposta a partir dos serviços da Web. O nó HTTPReply localiza o código do status e define seu próprio código de status com esse valor.
  • Você pode definir o código de status no campo Destination.HTTP.ReplyStatusCode em LocalEnvironment. Se você fizer isso, o valor definido substitui qualquer definição recuperada dos cabeçalhos de resposta.

Embora seja possível definir o status da resposta no cabeçalho especial (X-Original-HTTP-Status-Code na seção HTTPReplyHeader da mensagem de saída que substitui todas as outras definições) em um nó Compute, recomendamos que você utilize o conteúdo Ambiente Local para esse propósito.

Utilizando o LocalEnvironment.Destination.HTTP.RequestIdentifier
Quando o nó HTTPInput recebe uma mensagem de pedido de entrada, ele define o campo LocalEnvironment, Destination.HTTP.RequestIdentifier, com um valor exclusivo que identifica o cliente de serviços da Web que enviou o pedido. É possível se referir a esse valor e salvá-lo em outro local, se apropriado.

Por exemplo, se você projetar um par de fluxos de mensagens que interaja com um aplicativo WebSphere MQ existente (conforme descrito em O Intermediário Chama um Serviço da Web Existente), será possível salvar esse valor no fluxo de pedido e restaurá-lo no fluxo de resposta para garantir que o cliente correto receba a resposta. Se você fizer isso, será necessário alterar os dados e mantê-los como um BLOB.

O nó HTTPReply extrai esse valor do Ambiente Local e configura a resposta para que ela seja enviada ao cliente específico.

Se você projetar um fluxo de mensagens que inclui um nó HTTPInput e um nó HTTPReply, o valor será definido no Ambiente Local pelo nó HTTPInput, mas o nó HTTPReply não o utilizará. Portanto, se o fluxo de mensagens inclui ambos os nós e um nó Compute no mesmo fluxo, você não terá que incluir a árvore Ambiente Local ao especificar os componentes da árvore de mensagem que serão copiados da mensagem de entrada para a mensagem de saída pelo nó Compute (a propriedade Modo Calcular).

Definindo o URL do Nó HTTPRequest Dinamicamente
Você pode definir a propriedade URL de Serviço da Web Padrão no nó HTTPRequest para determinar a URL de destino para um pedido do serviço da Web. Você pode configurar um nó Compute antes que o nó HTTPRequest no fluxo de mensagens substitua o valor definido na propriedade. O ESQL de codificação que armazena uma cadeia de URL em LocalEnvironment.Destination.HTTP.RequestURL; ele é recuperado pelo nó HTTPRequest e utilizado no lugar do valor de propriedade do nó.

Embora seja possível definir a URL do pedido no cabeçalho especial X-Original-HTTP-URL na seção HTTPRequestHeader da mensagem de pedido (que substitui todas as outras definições) em um nó Compute, recomendamos que você utilize o conteúdo Ambiente Local para esse propósito.

Configurando Gerar Cabeçalhos HTTP Padrão da Resposta para o nó HTTPReply
Se você selecionar a caixa de opções Gerar Cabeçalhos HTTP Padrão da Resposta no diálogo de propriedades do nó HTTPReply, o nó incluirá um conjunto mínimo de cabeçalhos na resposta que é enviada ao cliente do serviço da Web. Ele também poderá incluir quaisquer cabeçalhos presentes em HTTPResponseHeader na mensagem recebida como entrada.

O nó HTTPReply sempre regrava o cabeçalho Comprimento do Conteúdo (mesmo que você tenha limpado a caixa de opções Gerar Cabeçalhos HTTP Padrão da Entrada ou Resposta) para garantir que seu conteúdo esteja correto.

Todos ou cabeçalhos são copiados do HTTPResponseHeader. Depois disso, se não houver nenhum cabeçalho Tipo de Conteúdo, ele será incluído com um valor de text/xml; charset=utf-8.

Se houver uma seção HTTPReplyHeader na mensagem recebida pelo nó HTTPReply e se o terminal Saída do nó HTTPReply estiver conectado, a seção HTTPReplyHeader será atualizada com qualquer valor alterado ou incluído.

Definindo Gerar Cabeçalhos HTTP Padrão da Entrada ou Resposta para o nó HTTPRequest
Se você selecionar a caixa de opções Gerar Cabeçalhos HTTP Padrão da Entrada ou Resposta do diálogo de propriedades do nó HTTPRequest, o nó incluirá um conjunto mínimo de cabeçalhos na resposta que é enviada ao servidor. O nó também incluirá quaisquer cabeçalhos presentes em HTTPInputHeader na mensagem recebida como entrada.

O nó HTTPRequest sempre regrava o cabeçalho Comprimento do Conteúdo (mesmo que você tenha limpado a caixa de opções Gerar Cabeçalhos HTTP Padrão da Entrada ou Resposta), para garantir que seu conteúdo esteja correto.

Todos os cabeçalhos são copiados de HTTPInputHeader, exceto:

  • o cabeçalho Host, que é definido com base na URL do pedido ou na seção HTTPRequestHeader de entrada da mensagem
  • O cabeçalho Comprimento do Conteúdo, que é regravado em todos os casos

Vários cabeçalhos são gerados com os valores padrão, se não estiverem localizados nos cabeçalhos HTTPRequest ou HTTPInput de entrada:

  • SOAPAction, que é definido para ""
  • Host, que é definido com base na URL de pedido para ser utilizada nessa mensagem. O valor pode ser
  • Tipo de Conteúdo, que é definido para text/xml; charset=utf-8

Qualquer cabeçalho presente em HTTPRequestHeader na mensagem recebida pelo nó substitui um cabeçalho com o mesmo nome também presente em HTTPInputHeader na mesma mensagem. Se houver um HTTPRequestHeader na mensagem recebida, ele será atualizado com os valores alterados ou incluídos.

Conceitos relacionados
WebSphere MQ Web Services Transport
WSDL
Tarefas relacionadas
Criação de um Fluxo de Mensagens
Implementando
Verificando os Resultados da Implementação
Referências relacionadas
Nó HTTPInput
Nó HTTPReply
Nó HTTPRequest
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ac20450_