Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 22743|Odgovoriti: 0

[Vir] Implementirajte preprosto Http storitev s HttpListenerjem

[Kopiraj povezavo]
Objavljeno na 2. 12. 2015 16:56:31 | | |
HttpListener zagotavlja preprost, programabilen in nadzorovan poslušalec HTTP protokola. Omogoča enostavno zagotavljanje nekaterih Http storitev, ne da bi morali začeti velik servisni program, kot je IIS.

Opomba: Ta razred je na voljo le na računalnikih z operacijskimi sistemi Windows XP SP2 ali Windows Server 2003.

Splošni koraki za uporabo Http storitev so naslednji:

Ustvarite HTTP poslušalec objekt in ga inicializirajte
Dodajte predpono URI, ki jo je treba poslušati
Začnite poslušati zahteve strank
Obravnava HTTP zahtevkov od odjemalcev
Izklopite HTTP poslušalec
Koraka 3 in 4 je mogoče ciklično preklapljati za zagotavljanje storitev, ki jih zahteva več strank.

Ustvarite HTTP objekt poslušalca

Za ustvarjanje HTTP listener objekta morate ustvariti le nov objekt HttpListener.

HttpListener listener = novi HttpListener();

Inicializacija zahteva naslednja dva koraka

Razpon URL-jev za poslušanje lahko dodate v Listener. Predpone z uporabo naslednje funkcije:
poslušalec. Predpone.Add(prefix) //predpona mora končati na '/'
Pokliči poslušalca. Začni () za vezavo porta in poslušaj potrebe odjemalca.
Sprejemanje HTTP zahtevkov

V .net 2.0 je dostop do objektov zahtev in odgovorov, ki jih uporablja razred HttpListener, omogočen prek objekta HttpListenerContext.

Najlažji način za pridobitev HttpListenerContext je naslednji:

HttpListenerContext context = poslušalec. GetContext();

Ta metoda blokira klicno funkcijo, dokler ni prejeta zahteva odjemalca, in če želite izboljšati hitrost odziva, lahko uporabite asinhrono metodo listener. BeginGetContext() za pridobitev objekta HttpListenerContext.

Obravnava HTTP zahtevkov

Po pridobitvi HttpListenerContext lahko pridobite objekt, ki predstavlja zahtevo odjemalca, preko atributa Request in objekt, ki predstavlja odgovor, ki ga bo HttpListener poslal odjemalcu preko atributa Response.

HttpListenerRequest request = kontekst. Prošnja;
HttpListenerResponse response = kontekst. Odgovor;

Objekt HttpListenerRequest tukaj je podoben uporabi Request and Response v ASP in HttpListenerResponse objektih, zato tukaj ne bom veliko razlagal, spodaj si lahko ogledate primer za specifično uporabo.

Izklopite HTTP poslušalec

S klicem poslušalca. Funkcija stop() izklopi poslušalca in sprosti ustrezne vire

Primer kode:

z uporabo System;
z uporabo System.Collections.Generic;
z uporabo System.Text;

z uporabo System.Net;

imenski prostor ConsoleApplication1
{
    Razredni program
    {
        static void Main (string[] args)
        {
            HttpListener listener = novi HttpListener();
            poslušalec. Predpone.add("http://localhost/"); Dodaj razpon URL-jev, ki jih je treba poslušati
            poslušalec. Start(); Začnite poslušati na portu in prejemati zahteve odjemalcev
            Console.WriteLine ("Poslušanje...");

            Blokira glavno funkcijo, dokler ni prejeta zahteva odjemalca
            HttpListenerContext context = poslušalec. GetContext();
            HttpListenerRequest request = kontekst. Prošnja;
            HttpListenerResponse response = kontekst. Odgovor;

            odgovor na niz String = string. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Izpišite ustrezne informacije odjemalcu.
            Odgovor. ContentLength64 = medpomnilnik. Dolžina;
            System.IO.Stream output = odziv. OutputStream;
            izhod. Write(buffer, 0, buffer. Dolžina);
            Zaprete izhodni tok, da sprostite ustrezne vire
            izhod. Close();

            poslušalec. Stop(); Izklopite HttpListener
        }
    }
}

Program je razmeroma preprost: najprej ustvari HTTP poslušalec za implementacijo storitve domene "http://localhost/time/", ko prejme oddaljeno zahtevo, pretvori trenutni čas v izhodni niz za odjemalca in nato zapre poslušalca.





Prejšnji:Težave in rešitve za AJAX meddomenske klice za ASP.NET MVC ali WebAPI storitve
Naslednji:3. decembra 2015 je bila spletna stran uradno preimenovana v &quot;Code Farmer Network&quot; in o tem obveščena!
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com