Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 22743|Vastaus: 0

[Lähde] Toteuta yksinkertainen Http-palvelu HttpListenerin avulla

[Kopioi linkki]
Julkaistu 2.12.2015 16.56.31 | | |
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.





Edellinen:Ongelmia ja ratkaisuja AJAX-verkkotunnusten välisiin kutsuihin ASP.NET MVC- tai WebAPI-palveluihin
Seuraava:3. joulukuuta 2015 verkkosivusto nimettiin virallisesti uudelleen &quot;Code Farmer Networkiksi&quot;, ja siitä ilmoitetaan!
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com