HttpListener pakub lihtsat, programmeeritavat ja juhitavat HTTP-protokolli kuulajat. See võimaldab sul hõlpsalt pakkuda mõningaid Http-teenuseid ilma, et peaksid alustama suurt teenuseprogrammi nagu IIS.
Märkus: See klass on saadaval ainult arvutites, mis töötavad Windows XP SP2 või Windows Server 2003 operatsioonisüsteemidega.
Http-teenuste kasutamise üldised sammud on järgmised:
Loo HTTP kuulaja objekt ja initsialiseeri see Lisa URI eesliide, mida tuleb kuulata Alusta klientide päringute kuulamist Halda klientide Http-päringuid Lülita HTTP kuulaja välja Samme 3 ja 4 saab tsükliliselt rakendada, et pakkuda teenuseid, mida soovivad mitmed kliendid.
Loo HTTP kuulaja objekt
HTTP kuulaja objekti loomiseks tuleb lihtsalt luua uus HttpListeneri objekt.
HttpListener kuulaja = uus HttpListener();
Initsialiseerimine nõuab järgmisi kahte sammu
Kuulamiseks saab lisada URL-vahemiku listener.prefikseid, kasutades järgmist funktsiooni: kuulaja. Prefixes.Add(prefix) //prefix peab lõppema '/' Helista kuulajale. Start(), et siduda port ja hakata kuulama kliendi vajadusi. HTTP-päringute aktsepteerimine
.net 2.0 versioonis on ligipääs HttpListener-klassi poolt kasutatavatele päringu- ja vastuseobjektidele HttpListenerContext objekti kaudu.
Kõige lihtsam viis HttpListenerContexti saamiseks on järgmine:
HttpListenerContext = kuulaja. GetContext();
See meetod blokeerib kõnefunktsiooni seni, kuni kliendi päring on vastu võetud, ja kui soovid reageerimiskiirust parandada, võid kasutada asünkroonset meetodi kuulajat. BeginGetContext(), et saada HttpListenerContext objekt.
Käsitle HTTP-päringuid
Pärast HttpListenerContexti saamist saate objekti, mis esindab kliendi päringut Request atribuudi kaudu, ning objekti, mis esindab vastust, mille HttpListener saadab kliendile Response atribuudi kaudu.
HttpListenerRequest request = kontekst. Taotlus; HttpListenerResponse vastus = kontekst. Vastus;
HttpListenerRequest objekt siin on sarnane Request and Response'i kasutamisele Asp ja HttpListenerResponse objektides, seega ma ei ütle siin palju, saad allpool konkreetse kasutuse näidet näha.
Lülita HTTP kuulaja välja
Helistades kuulajale. Stop() funktsioon, mis lülitab kuulaja välja ja vabastab vajalikud ressursid
Koodinäide:
kasutades süsteemi; kasutades System.Collections.Generic; kasutades System.Texti;
kasutades System.Net;
nimeruum ConsoleApplication1
{ Klassiprogramm { staatiline tühjus Main(string[] args) { HttpListener kuulaja = uus HttpListener(); kuulaja. Prefiksid.Add("http://localhost/"); Lisa URL-ide vahemik, mida tuleb kuulata kuulaja. Start(); Alusta pordi kuulamist ja võta vastu kliendipäringuid Console.WriteLine ("Kuulamine...");
Blokeerib peamise funktsiooni kuni kliendi päringu saabumiseni HttpListenerContext = kuulaja. GetContext(); HttpListenerRequest request = kontekst. Taotlus; HttpListenerResponse vastus = kontekst. Vastus;
string responseString = string. Format(<HTML><BODY>" {0}</BODY></HTML>", DateTime.Now); byte[] puhver = System.Text.Encoding.UTF8.GetBytes(responseString); Väljasta vastav info kliendile. vastus. ContentLength64 = puhver. Pikkus; System.IO.Stream väljund = vastus. OutputStream; väljund. Write(buffer, 0, buffer. Pikkus); Sulge väljundvoog, et vabastada vastavad ressursid väljund. Close();
kuulaja. Stop(); Lülita HttpListener välja } }
}
Programm on suhteliselt lihtne: esmalt loo HTTP kuulaja, mis rakendab "http://localhost/time/" domeeni teenust, kui see saab kaugpäringu, teisendab ta praeguse aja kliendile stringi väljundiks ja seejärel sulgeb kuulaja.
|