Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 22743|Respuesta: 0

[Fuente] Implementa un servicio Http sencillo con HttpListener

[Copiar enlace]
Publicado en 2/12/2015 16:56:31 | | |
HttpListener proporciona un escuchador de protocolo HTTP simple, programable y controlable. Te permite proporcionar fácilmente algunos servicios Http sin tener que iniciar un programa de servicios grande como IIS.

Nota: Esta clase solo está disponible en ordenadores que ejecutan sistemas operativos Windows XP SP2 o Windows Server 2003.

Los pasos generales para utilizar los servicios Http son los siguientes:

Crea un objeto de escucha HTTP e inicialízalo
Añade el prefijo URI que hay que escuchar
Empieza a escuchar las solicitudes de los clientes
Gestionar las solicitudes HTTP de los clientes
Desactiva el oyente HTTP
Los pasos 3 y 4 pueden ciclarse para ofrecer servicios solicitados por varios clientes.

Crear un objeto de escucha HTTP

Para crear un objeto listener HTTP, solo necesitas crear un nuevo objeto HttpListener.

HttpListener listener = nuevo HttpListener();

La inicialización requiere los siguientes dos pasos

Puedes añadir el rango de URL para escuchar en listener. Prefijos usando la siguiente función:
Oyente. Prefijos.Add(prefijo) //prefijo debe terminar en '/'
Llama al oyente. Empieza a asignar el puerto y empieza a escuchar las necesidades del cliente.
Aceptar solicitudes HTTP

En .net 2.0, el acceso a los objetos de solicitud y respuesta usados por la clase HttpListener se proporciona mediante el objeto HttpListenerContext.

La forma más sencilla de obtener el HttpListenerContext es la siguiente:

HttpListenerContext context = oyente. GetContext();

Este método bloqueará la función de llamada hasta que se reciba una solicitud del cliente, y si quieres mejorar la velocidad de respuesta, puedes usar el escuchador del método asincrónico. BeginGetContext() para obtener el objeto HttpListenerContext.

Gestionar las solicitudes HTTP

Tras obtener el HttpListenerContext, puedes obtener el objeto que representa la petición del cliente a través del atributo Request y el objeto que representa la respuesta que el HttpListener enviará al cliente mediante el atributo Response.

HttpListenerRequest request = contexto. Petición;
HttpListenerResponse respuesta = contexto. Respuesta;

El objeto HttpListenerRequest aquí es similar al uso de Request and Response en los objetos Asp y HttpListenerResponse, así que no diré mucho aquí, puedes ver el ejemplo a continuación para un uso específico.

Desactiva el oyente HTTP

Llamando al oyente. Stop() para apagar al oyente y liberar los recursos relevantes

Ejemplo de código:

usando Sistema;
usando System.Collections.Generic;
usando System.Text;

usando System.Net;

espacio de nombres ConsoleApplication1
{
    Programa de la clase
    {
        vacío estático Main(string[] args)
        {
            HttpListener listener = nuevo HttpListener();
            Oyente. Prefijos. Add("http://localhost/"); Añade el rango de URLs que hay que escuchar
            Oyente. Inicio(); Empieza a escuchar en el port y recibe solicitudes de clientes
            Console.WriteLine("Escuchando...");

            Bloquea la función principal hasta que se recibe una solicitud del cliente
            HttpListenerContext context = oyente. GetContext();
            HttpListenerRequest request = contexto. Petición;
            HttpListenerResponse respuesta = contexto. Respuesta;

            string responseString = string. Format("<HTML><BODY> {0}</BODY></HTML>", FechaTime.Ahora);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Envía la información correspondiente al cliente.
            respuesta. ContentLength64 = búfer. Longitud;
            Salida System.IO.Stream = respuesta. OutputStream;
            Salida. Write(buffer, 0, buffer. Longitud);
            Cierra el flujo de salida para liberar los recursos correspondientes
            Salida. Cerca();

            Oyente. Stop(); Desactiva HttpListener
        }
    }
}

El programa es relativamente sencillo: primero crea un oyente HTTP para implementar el servicio del dominio "http://localhost/time/", cuando recibe una solicitud remota, convierte la hora actual en una cadena de salida al cliente y luego cierra el oyente.





Anterior:Problemas y soluciones para llamadas AJAX entre dominios a ASP.NET servicios MVC o WebAPI
Próximo:El 3 de diciembre de 2015, la web fue oficialmente renombrada como &quot;Code Farmer Network&quot;, ¡notificada por la presente por la siguiente!
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com