HttpListener tarjoaa yksinkertaisen, ohjelmoitavan ja hallittavan HTTP-protokollan kuuntelijan. Sen avulla voit helposti tarjota joitakin Http-palveluita ilman, että tarvitsee aloittaa suurta palveluohjelmaa kuten IIS.
Huomautus: Tämä luokka on saatavilla vain tietokoneissa, joissa on Windows XP SP2 tai Windows Server 2003 -käyttöjärjestelmät.
Yleiset vaiheet Http-palveluiden käyttöön ovat seuraavat:
Luo HTTP-kuuntelijaobjekti ja alusta se Lisää URI-etuliite, jota täytyy kuunnella Ala kuunnella asiakkaiden pyyntöjä Käsittele asiakkaiden Http-pyyntöjä Sammuta HTTP-kuuntelija Vaiheet 3 ja 4 voidaan kierrättää tarjoamaan palveluita, joita useampi asiakas pyytää.
Luo HTTP-kuuntelijaobjekti
HTTP-kuuntelijaobjektin luomiseksi tarvitsee vain luoda uusi HttpListener-objekti.
HttpListener listener = uusi HttpListener();
Alustus vaatii seuraavat kaksi vaihetta
Voit lisätä URL-alueen kuunneltavaksi listener.Etuliitteitä käyttämällä seuraavaa funktiota: Kuuntelija. Prefixes.Add(prefix) //prefixsin tulee päättyä '/' Soita kuuntelijalle. Aloita () sitomaan portti ja ala kuunnella asiakkaan tarpeita. Hyväksy HTTP-pyynnöt
Versiossa .net 2.0 pääsy HttpListener-luokan käyttämiin pyyntö- ja vastausobjekteihin tarjotaan HttpListenerContext-objektin kautta.
Helpoin tapa saada HttpListenerContext on seuraava:
HttpListenerContext Context = kuuntelija. GetContext();
Tämä menetelmä estää kutsufunktion, kunnes asiakaspyyntö vastaanotetaan, ja jos haluat parantaa vastenopeutta, voit käyttää asynkronista metodin kuuntelijaa. BeginGetContext() saadakseen HttpListenerContext-objektin.
Käsittele HTTP-pyynnöt
Kun saat HttpListenerContextin, voit saada objektin, joka edustaa asiakkaan pyyntöä Request-attribuutin kautta, sekä objektin, joka edustaa vastausta, jonka HttpListener lähettää asiakkaalle Response-attribuutin kautta.
HttpListenerRequest-pyyntö = konteksti. Pyyntö; HttpListenerResponse-vastaus = konteksti. Vastaus;
HttpListenerRequest-objekti tässä on samankaltainen kuin Request and Responsen käyttö Asp:ssa ja HttpListenerResponse-objekteissa, joten en kerro tästä paljoa, voit katsoa alla olevan esimerkin tarkempaa käyttöä varten.
Sammuta HTTP-kuuntelija
Soittamalla kuulijalle. Stop()-funktio sammuttaa kuuntelijan ja vapauttaa tarvittavat resurssit
Koodiesimerkki:
käyttämällä Systemiä; käyttäen System.Collections.Generic-tiedostoa; käyttäen System.Textiä;
käyttäen System.Net;
nimiavaruus ConsoleApplication1
{ luokkaohjelma { staattinen void Pää(merkkijono[] args) { HttpListener listener = uusi HttpListener(); Kuuntelija. Etuliitteet.Add("http://localhost/"); Lisää URL-osoitteiden alue, joita täytyy kuunnella Kuuntelija. Start(); Aloita kuuntelemalla porttia ja vastaanota asiakaspyyntöjä Console.WriteLine ("Kuuntelee...");
Estää päätoiminnon, kunnes asiakaspyyntö vastaanotetaan HttpListenerContext Context = kuuntelija. GetContext(); HttpListenerRequest-pyyntö = konteksti. Pyyntö; HttpListenerResponse-vastaus = konteksti. Vastaus;
merkkijonovastausString = merkkijono. Format(<HTML><BODY>" {0}</BODY></HTML>", DateTime.Now); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); Lähetä vastaavat tiedot asiakkaalle. Vastaus. ContentLength64 = puskuri. Pituus; System.IO.Stream ulostulo = vaste. OutputStream; Tulos. Write(buffer, 0, buffer. Pituus); Sulje lähtövirta vapauttaaksesi vastaavat resurssit Tulos. Close();
Kuuntelija. Stop(); Sammuta HttpListener } }
}
Ohjelma on suhteellisen yksinkertainen: ensin luodaan HTTP-kuuntelija toteuttamaan "http://localhost/time/"-domainin palvelu, kun se vastaanottaa etäpyynnön, se muuntaa nykyisen ajan merkkijonoksi asiakkaalle ja sulkee sitten kuuntelijan.
|