HttpListener tilbyder en simpel, programmerbar og kontrollerbar HTTP-protokollytter. Det gør det nemt at levere nogle HTTP-tjenester uden at skulle starte et stort serviceprogram som IIS.
Bemærk: Denne klasse er kun tilgængelig på computere, der kører Windows XP SP2 eller Windows Server 2003 operativsystemer.
De generelle trin til at bruge HTTP-tjenester er som følger:
Opret et HTTP-lytterobjekt og initialiser det Tilføj URI-præfikset, der skal lyttes til Begynd at lytte efter forespørgsler fra klienter Håndter HTTP-forespørgsler fra klienter Sluk HTTP-lytteren Trin 3 og 4 kan cykles for at levere tjenester, der anmodes af flere kunder.
Opret et HTTP-lytterobjekt
For at oprette et HTTP Listener-objekt behøver du blot at oprette et nyt HttpListener-objekt.
HttpListener lytter = ny HttpListener();
Initialisering kræver følgende to trin
Du kan tilføje URL-intervallet, som du skal lytte til i listener.Prefixes ved at bruge følgende funktion: lytter. Præfikser.Add(præfiks) //præfiks skal ende på '/' Ring til lytter. Start() for at binde porten og begynde at lytte efter klientens behov. Accepter HTTP-anmodninger
I .NET 2.0 gives adgang til anmodnings- og svarobjekterne, som bruges af HttpListener-klassen, via objektet HttpListenerContext.
Den nemmeste måde at få HttpListenerContext på er som følger:
HttpListenerContext context = lytter. GetContext();
Denne metode blokerer kaldsfunktionen, indtil en klientforespørgsel modtages, og hvis du vil forbedre svarhastigheden, kan du bruge den asynkrone metode lytter. BeginGetContext() for at hente objektet HttpListenerContext.
Håndter HTTP-forespørgsler
Efter at have opnået HttpListenerContext, kan du hente objektet, der repræsenterer klientens anmodning via Request-attributten og objektet, der repræsenterer det svar, som HttpListener sender til klienten via Response-attributten.
HttpListenerRequest request = kontekst. Anmodning; HttpListenerResponse svar = kontekst. Respons;
HttpListenerRequest-objektet her ligner brugen af Request and Response i Asp og HttpListenerResponse-objektet, så jeg vil ikke sige så meget her, du kan se eksemplet nedenfor til specifik brug.
Sluk HTTP-lytteren
Ved at kalde lytter. Stop()-funktionen for at slukke lytteren og frigøre de relevante ressourcer
Kodeeksempel:
ved brug af System; ved brug af System.Collections.Generic; ved brug af System.Text;
ved brug af System.Net;
navnerum ConsoleApplication1
{ klasseprogram { statisk void Main(string[] args) { HttpListener lytter = ny HttpListener(); lytter. Præfikser.Add("http://localhost/"); Tilføj det interval af URL'er, der skal lyttes til lytter. Start(); Begynd at lytte på porten og modtag klientanmodninger Console.WriteLine ("Lytter...");
Blokerer hovedfunktionen, indtil en klientanmodning modtages HttpListenerContext context = lytter. GetContext(); HttpListenerRequest request = kontekst. Anmodning; HttpListenerResponse svar = kontekst. Respons;
strengresponsStreng = streng. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); Output de tilsvarende oplysninger til klienten. svar. ContentLength64 = buffer. Længde; System.IO.Stream-output = respons. OutputStream; output. Skriv(buffer, 0, buffer. Længde); Luk outputstrømmen for at frigøre de tilsvarende ressourcer output. Close();
lytter. Stop(); Sluk for HttpListener } }
}
Programmet er relativt simpelt: Opret først en HTTP-lytter til at implementere tjenesten af "http://localhost/time/"-domænet, og når det modtager en fjernforespørgsel, konverterer det den aktuelle tid til en streng-output til klienten og lukker derefter lytteren.
|