Servicio HTTP básico
El ejemplo de BasicHttpService muestra cómo implementar un servicio basado en HTTP y RPC, generalmente conocido como servicio "POX" (Plain Old XML), mediante el modelo de programación REST Windows Communication Foundation (WCF). Este ejemplo consta de dos componentes: un servicio HTTP WCF hospedado automáticamente (Service.cs) y una aplicación de consola (Program.cs) que crea el servicio y le llama.
Detalles del ejemplo
El servicio WCF expone 2 operaciones, EchoWithGet
y EchoWithPost
, que devuelven la cadena que se les pasa como entrada.
La operación EchoWithGet
se anota con WebGetAttribute, que indica que la operación procesa las solicitudes GET
de HTTP. Dado que el WebGetAttribute no especifica un objeto UriTemplate explícitamente, la operación espera a que se pase la cadena de entrada con un parámetro de cadena de consulta con el nombre s
. Observe que el formato del URI que el servicio espera se puede personalizar utilizando la propiedad UriTemplate.
La operación EchoWithPost
se anota con WebInvokeAttribute, que indica que no es una operación GET
(tiene efectos secundarios). Dado que el WebInvokeAttribute no especifica un Method
explícitamente, la operación procesa las solicitudes POST
de HTTP que tienen la cadena en el cuerpo de la solicitud (en el formato XML, por ejemplo). Observe que el método HTTP y el formato del URI para la solicitud se pueden personalizar utilizando las propiedades Method y UriTemplate, respectivamente.
El archivo App.config configura el servicio WCF con un WebHttpEndpoint predeterminado que tiene la propiedad HelpEnabled establecida en true
. Como resultado, la infraestructura WCF crea una página de ayuda automática basada en HTML en http://localhost:8000/Customers/help
, que proporciona información sobre cómo construir las solicitudes HTTP para el servicio y cómo usar la respuesta HTTP del servicio.
El archivo Program.cs muestra el procedimiento para usar el generador de canales WCF a fin de realizar llamadas al servicio y procesar respuestas. Observe que se trata simplemente de una manera de tener acceso a un servicio de WCF. También es posible tener acceso al servicio utilizando otras clases de .NET Framework como HttpWebRequest y WebClient.
El ejemplo consta de un servicio autohospedado y un cliente que se ejecutan ambos dentro de una aplicación de consola. A medida que se ejecuta la aplicación de consola, el cliente realiza solicitudes al servicio y escribe la información pertinente de las respuestas en la ventana de la consola.
Para utilizar este ejemplo
Abra la solución del ejemplo de servicio HTTP básico. Al iniciar Visual Studio 2012, debe ejecutarlo como administrador para que el ejemplo se ejecute correctamente. Para ello, haga clic con el botón derecho en el icono de Visual Studio y seleccione Ejecutar como administrador en el menú contextual.
Presione Ctrl+Shift+B para compilar la solución y, a continuación, presione Ctrl+F5 para ejecutar la aplicación de consola sin depuración. La ventana de la consola aparece y proporciona el URI del servicio en ejecución y el URI de la página de Ayuda HTML para este. Puede ver la página de Ayuda HTML en cualquier momento escribiendo su URI en un explorador. A medida que el ejemplo se ejecuta, el cliente escribe el estado de la actividad actual.
Presione cualquier tecla para terminar el ejemplo.