|
|
Pubblicato su 02/12/2015 16:56:31
|
|
|

HttpListener fornisce un listener di protocollo HTTP semplice, programmabile e controllabile. Ti permette di fornire facilmente alcuni servizi Http senza dover avviare un grande programma di servizi come IIS.
Nota: Questa classe è disponibile solo su computer che utilizzano sistemi operativi Windows XP SP2 o Windows Server 2003.
I passaggi generali per utilizzare i servizi Http sono i seguenti:
Crea un oggetto ascoltatore HTTP e inizializzalo Aggiungi il prefisso URI che deve essere ascoltato Inizia ad ascoltare le richieste dei clienti Gestire le richieste Http dai client Disattiva l'ascoltatore HTTP I passaggi 3 e 4 possono essere ciclati per fornire servizi richiesti da più clienti.
Crea un oggetto listener HTTP
Per creare un oggetto listener HTTP, basta creare un nuovo oggetto HttpListener.
HttpListener listener = nuovo HttpListener();
L'inizializzazione richiede i seguenti due passaggi
Puoi aggiungere l'intervallo URL da ascoltare in listener. Prefissi utilizzando la seguente funzione: ascoltatore. Prefissi. Aggiungi(prefisso) //prefisso deve terminare con '/' Chiama l'ascoltatore. Inizia a assegnare la porta e inizia ad ascoltare le esigenze del cliente. Accetta richieste HTTP
In .net 2.0, l'accesso agli oggetti richiesta e risposta usati dalla classe HttpListener è fornito tramite l'oggetto HttpListenerContext.
Il modo più semplice per ottenere HttpListenerContext è il seguente:
HttpListenerContext = ascoltatore. GetContext();
Questo metodo bloccherà la funzione chiamata fino a quando non riceverà una richiesta cliente e, se vuoi migliorare la velocità di risposta, puoi usare l'ascoltatore asincrono. BeginGetContext() per ottenere l'oggetto HttpListenerContext.
Gestione delle richieste HTTP
Dopo aver ottenuto l'HttpListenerContext, puoi ottenere l'oggetto che rappresenta la richiesta del client tramite l'attributo Request e l'oggetto che rappresenta la risposta che l'HttpListener invierà al client tramite l'attributo Response.
HttpListenerRequest request = contesto. Richiesta; HttpListenerResponse risposta = contesto. Risposta;
L'oggetto HttpListenerRequest qui è simile all'uso di Request and Response in Asp e HttpListenerResponse, quindi non dirò molto qui, puoi vedere l'esempio qui sotto per un uso specifico.
Disattiva l'ascoltatore HTTP
Chiamando l'ascoltatore. Stop() serve a spegnere l'ascoltatore e liberare le risorse rilevanti
Esempio di codice:
usando Sistema; usando System.Collections.Generic; usando System.Text;
usando System.Net;
namespace ConsoleApplication1
{ Programma di classe { vuoto statico Main(string[] args) { HttpListener listener = nuovo HttpListener(); ascoltatore. Prefissi. Add("http://localhost/"); Aggiungi la gamma di URL da ascoltare ascoltatore. Start(); Inizia ad ascoltare sulla portazione e ricevi richieste dal client Console.WriteLine("Ascolto...");
Blocca la funzione principale fino a quando non riceve una richiesta del cliente HttpListenerContext = ascoltatore. GetContext(); HttpListenerRequest request = contesto. Richiesta; HttpListenerResponse risposta = contesto. Risposta;
stringstring responseString = string. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); Invia le informazioni corrispondenti al client. risposta. ContentLength64 = buffer. Lunghezza; System.IO.Stream output = risposta. OutputStream; output. Write(buffer, 0, buffer. Lunghezza); Chiudi il flusso di output per liberare le risorse corrispondenti output. Close();
ascoltatore. Stop(); Disattiva HttpListener } }
}
Il programma è relativamente semplice: prima crea un listener HTTP per implementare il servizio del dominio "http://localhost/time/", quando riceve una richiesta remota, converte l'ora corrente in un output di stringa al client e poi chiude l'ascoltatore.
|
Precedente:Problemi e soluzioni per le chiamate AJAX cross-domain a ASP.NET servizi MVC o WebAPIProssimo:Il 3 dicembre 2015, il sito web è stato ufficialmente rinominato "Code Farmer Network", da qui notificato!
|