Configurando Nós para Cenários de Serviços da Web Específicos

Esta seção fornece informações adicionais sobre como configurar nós em um fluxo de mensagens para manipular determinadas situações.

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 existente (como descrito em Trabalhando com Cenários de Exemplo de Serviço da Web), 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ços da Web Padrão no nó HTTPRequest para determinar o 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 o 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.

Definindo Gerar Cabeçalhos HTTP Padrão da Entrada ou Resposta para o nó HTTPReply
Se você selecionar a caixa de opções Gerar Cabeçalhos HTTP Padrão da Entrada ou 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 no 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 no URL de pedido para ser utilizado 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

Gerar WSDL (Web Services Description Language)

Tarefas relacionadas
Criação de um Fluxo de Mensagens
Trabalhando com Cenários de Exemplo de Serviço da Web
Implementando Aplicativos de Fluxo de Mensagens
Verificando os Resultados da Implementação

Referências relacionadas
Nó HTTPInput
Nó HTTPReply
Nó HTTPRequest