|
|
Publisert på 02.12.2015 16:56:31
|
|
|

HttpListener tilbyr en enkel, programmerbar og kontrollerbar HTTP-protokolllytter. Det lar deg enkelt tilby noen HTTP-tjenester uten å måtte starte et stort tjenesteprogram som IIS.
Merk: Denne klassen er kun tilgjengelig på datamaskiner som kjører Windows XP SP2 eller Windows Server 2003 operativsystemer.
De generelle stegene for å bruke Http-tjenester er som følger:
Opprett et HTTP-lytterobjekt og initialiser det Legg til URI-prefikset som må lyttes til Begynn å lytte etter forespørsler fra klienter Håndter HTTP-forespørsler fra klienter Slå av HTTP-lytteren Trinn 3 og 4 kan kjøres for å tilby tjenester som forespørres av flere kunder.
Opprett et HTTP-lytterobjekt
For å lage et HTTP-lytterobjekt trenger du bare å opprette et nytt HttpListener-objekt.
HttpListener listener = ny HttpListener();
Initialisering krever følgende to trinn
Du kan legge til URL-området du skal lytte til i listener.Prefikser ved å bruke følgende funksjon: lytter. Prefikser. Legg til (prefiks) //prefiks må ende på '/' Ring lytter. Start() for å binde porten og begynne å lytte etter klientens behov. Aksepter HTTP-forespørsler
I .NET 2.0 gis tilgang til forespørsels- og svarobjektene som brukes av HttpListener-klassen via HttpListenerContext-objektet.
Den enkleste måten å få HttpListenerContext på er som følger:
HttpListenerContext context = listener. GetContext();
Denne metoden vil blokkere kallfunksjonen til en klientforespørsel mottas, og hvis du vil forbedre responshastigheten, kan du bruke den asynkrone metoden lytter. BeginGetContext() for å hente HttpListenerContext-objektet.
Håndter HTTP-forespørsler
Etter å ha hentet HttpListenerContext, kan du hente objektet som representerer klientens forespørsel via Request-attributtet og objektet som representerer svaret som HttpListener vil sende til klienten via Response-attributtet.
HttpListenerRequest-forespørsel = kontekst. Forespørsel; HttpListenerResponse svar = kontekst. Respons;
HttpListenerRequest-objektet her ligner på bruken av Request and Response i Asp og HttpListenerResponse-objektet, så jeg vil ikke si så mye her, du kan se eksempelet nedenfor for spesifikk bruk.
Slå av HTTP-lytteren
Ved å ringe lytter. Stop()-funksjonen for å slå av lytteren og frigjøre relevante ressurser
Kodeeksempel:
ved bruk av System; ved bruk av System.Collections.Generic; ved bruk av System.Text;
bruk av System.Net;
navnerom ConsoleApplication1
{ Klasseprogram { statisk void Main(string[] args) { HttpListener listener = ny HttpListener(); lytter. Prefikser.Legg til ("http://localhost/"); Legg til rekkevidden av URL-er som må lyttes til lytter. Start(); Begynn å lytte på porten og motta klientforespørsler Console.WriteLine ("Lytter...");
Blokkerer hovedfunksjonen til en klientforespørsel mottas HttpListenerContext context = listener. GetContext(); HttpListenerRequest-forespørsel = kontekst. Forespørsel; HttpListenerResponse svar = kontekst. Respons;
strengresponsStreng = streng. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); Send ut den tilsvarende informasjonen til klienten. respons. ContentLength64 = buffer. Lengde; System.IO.Stream-utgang = respons. OutputStream; Output. Write(buffer, 0, buffer. Lengde); Lukk utgangsstrømmen for å frigjøre tilsvarende ressurser Output. Close();
lytter. Stop(); Slå av HttpListener } }
}
Programmet er relativt enkelt: Først opprett en HTTP-lytter for å implementere tjenesten til "http://localhost/time/"-domenet, når det mottar en ekstern forespørsel, konverterer det gjeldende tid til en strengutgang til klienten, og lukker deretter lytteren.
|
Foregående:Problemer og løsninger for AJAX tverrdomenekall til ASP.NET MVC- eller WebAPI-tjenesterNeste:Den 3. desember 2015 ble nettsiden offisielt omdøpt til "Code Farmer Network", herved varslet!
|