HttpListener poskytuje jednoduchý, programovateľný a ovládateľný HTTP protokolový poslucháč. Umožňuje vám jednoducho poskytovať niektoré Http služby bez toho, aby ste museli začínať veľký servisný program ako IIS.
Poznámka: Táto trieda je dostupná iba na počítačoch s operačnými systémami Windows XP SP2 alebo Windows Server 2003.
Všeobecné kroky na používanie Http služieb sú nasledovné:
Vytvorte HTTP listener objekt a inicializujte ho Pridajte URI prefix, ktorý je potrebné počúvať Začnite počúvať požiadavky klientov Spracovanie HTTP požiadaviek od klientov Vypnite HTTP poslucháč Kroky 3 a 4 je možné cyklovať, aby poskytli služby požadované viacerými zákazníkmi.
Vytvorte HTTP listener objekt
Na vytvorenie HTTP listener objektu stačí vytvoriť nový HttpListener objekt.
HttpListener listener = nový HttpListener();
Inicializácia vyžaduje nasledujúce dva kroky
Môžete pridať rozsah URL na počúvanie v listener.Prefixes pomocou nasledujúcej funkcie: poslucháč. Predpony. Add(prefix) //prefix musí končiť na '/' Zavolajte poslucháčovi. Štart() na viazanie portu a začnite počúvať potreby klienta. Prijímanie HTTP požiadaviek
V .net 2.0 je prístup k objektom požiadaviek a odpovedí používaným triedou HttpListener zabezpečený prostredníctvom objektu HttpListenerContext.
Najjednoduchší spôsob, ako získať HttpListenerContext, je nasledovný:
HttpListenerContext context = poslucháč. GetContext();
Táto metóda zablokuje volaciu funkciu, kým nie je prijatá požiadavka klienta, a ak chcete zlepšiť rýchlosť odozvy, môžete použiť asynchrónny metódový poslucháč. BeginGetContext() na získanie objektu HttpListenerContext.
Spracovanie HTTP požiadaviek
Po získaní HttpListenerContext môžete získať objekt, ktorý reprezentuje požiadavku klienta cez atribút Request, a objekt, ktorý reprezentuje odpoveď, ktorú HttpListener pošle klientovi cez atribút Response.
HttpListenerRequest request = kontext. Žiadosť; Odpoveď HttpListenerResponse = kontext. Odpoveď;
Objekt HttpListenerRequest je tu podobný použitiu Request and Response v Asp a HttpListenerResponse objektoch, takže tu veľa neprezradím, nižšie môžete vidieť príklad pre konkrétne použitie.
Vypnite HTTP poslucháč
Tým, že zavolám poslucháčovi. Funkcia stop() na vypnutie poslucháča a uvoľnenie relevantných zdrojov
Príklad kódu:
pomocou systému; používajúc System.Collections.Generic; pomocou System.Text;
použitím System.Net;
menný priestor ConsoleApplication1
{ Triedny program { static void Main (string[] args) { HttpListener listener = nový HttpListener(); poslucháč. predpony.add("http://localhost/"); Pridaj rozsah URL, ktoré je potrebné počúvať poslucháč. Start(); Začnite počúvať na porte a prijímajte požiadavky klientov Console.WriteLine ("Listening...");
Blokuje hlavnú funkciu, kým nie je prijatá požiadavka klienta HttpListenerContext context = poslucháč. GetContext(); HttpListenerRequest request = kontext. Žiadosť; Odpoveď HttpListenerResponse = kontext. Odpoveď;
reťazec odpoveďReťazec = reťazec. Formát("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); Výstup zodpovedajúcich informácií klientovi. Odpoveď. ContentLength64 = buffer. Dĺžka; System.IO.Stream output = odpoveď. OutputStream; výstup. Write(buffer, 0, buffer. Dĺžka); Zatvorte výstupný tok, aby ste uvoľnili príslušné zdroje výstup. Close();
poslucháč. Stop(); Vypnite HttpListener } }
}
Program je relatívne jednoduchý, najprv vytvorte HTTP listener na implementáciu služby domény "http://localhost/time/", keď prijme vzdialený požiadavok, prevedie aktuálny čas na výstup reťazca pre klienta a potom listener zatvorí.
|