Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 22743|Odpoveď: 0

[Zdroj] Implementujte jednoduchú Http službu pomocou HttpListener

[Kopírovať odkaz]
Zverejnené 2. 12. 2015 16:56:31 | | |
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í.





Predchádzajúci:Problémy a riešenia pre medzidoménové volania AJAX na ASP.NET MVC alebo WebAPI služby
Budúci:Dňa 3. decembra 2015 bola webová stránka oficiálne premenovaná na &quot;Code Farmer Network&quot; a týmto bola informovaná!
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com