Serviço HTTP Básico
O exemplo BasicHttpService demonstra como implementar um serviço baseado em HTTP e baseado em RPC - popularmente conhecido como serviço "POX" (Plain Old XML) - usando o modelo de programação REST do Windows Communication Foundation (WCF). Este exemplo consiste em dois componentes: um serviço HTTP WCF auto-hospedado (Service.cs) e um aplicativo de console (Program.cs) que cria o serviço e faz chamadas para ele.
Detalhes da amostra
O serviço WCF expõe 2 operações EchoWithGet
e EchoWithPost
, que retorna a cadeia de caracteres que foi passada como entrada.
A EchoWithGet
operação é anotada com WebGetAttribute, o que indica que a operação processa solicitações HTTP GET
. Como o WebGetAttribute não especifica explicitamente um UriTemplate, a operação espera que a cadeia de caracteres de entrada seja passada usando um parâmetro de cadeia de caracteres de consulta com nome s
. Observe que o formato do URI esperado pelo serviço pode ser personalizado usando a UriTemplate propriedade.
A EchoWithPost
operação é anotada com WebInvokeAttribute, o que indica que não é uma GET
operação (tem efeitos colaterais). Como o WebInvokeAttribute não especifica explicitamente um Method
, a operação processa solicitações HTTP POST
que têm a cadeia de caracteres no corpo da solicitação (no formato XML, por exemplo). Observe que o método HTTP e o formato do URI para a solicitação podem ser personalizados usando as Method propriedades e UriTemplate respectivamente.
O arquivo App.config configura o serviço WCF com um padrão WebHttpEndpoint que tem a HelpEnabled propriedade definida como true
. Como resultado, a infraestrutura do WCF cria uma página de ajuda automática baseada em HTML que http://localhost:8000/Customers/help
fornece informações sobre como construir solicitações HTTP para o serviço e como consumir a resposta HTTP do serviço.
Program.cs demonstra como uma fábrica de canais WCF pode ser usada para fazer chamadas para o serviço e processar respostas. Observe que essa é apenas uma maneira de acessar um serviço WCF. Também é possível acessar o serviço usando outras classes do .NET Framework como HttpWebRequest e WebClient.
O exemplo consiste em um serviço auto-hospedado e um cliente que são executados em um aplicativo de console. À medida que o aplicativo de console é executado, o cliente faz solicitações ao serviço e grava as informações pertinentes das respostas na janela do console.
Para usar este exemplo
Abra a solução para o Exemplo de serviço http básico. Ao iniciar o Visual Studio 2012, você deve executar como administrador para que o exemplo seja executado com êxito. Faça isso clicando com o botão direito do mouse no ícone do Visual Studio e selecionando Executar como administrador no menu de contexto.
Pressione Ctrl+Shift+B para criar a solução e, em seguida, pressione Ctrl+F5 para executar o aplicativo de console sem depuração. A janela do console aparece e fornece o URI do serviço em execução e o URI da página de ajuda HTML para o serviço em execução. A qualquer momento, você pode exibir a página de ajuda HTML digitando o URI da página de ajuda em um navegador. À medida que o exemplo é executado, o cliente grava o status da atividade atual.
Pressione qualquer tecla para encerrar a amostra.