Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 22743|Odpověď: 0

[Zdroj] Implementujte jednoduchou Http službu pomocí HttpListener

[Kopírovat odkaz]
Zveřejněno 02.12.2015 16:56:31 | | |
HttpListener poskytuje jednoduchý, programovatelný a ovladatelný HTTP protokolový posluchač. Umožňuje vám snadno poskytovat některé Http služby bez nutnosti zahajovat rozsáhlý servisní program jako IIS.

Poznámka: Tato třída je dostupná pouze na počítačích s operačními systémy Windows XP SP2 nebo Windows Server 2003.

Obecné kroky pro používání Http služeb jsou následující:

Vytvořte HTTP listener objekt a inicializujte ho
Přidejte předponu URI, kterou je třeba poslouchat
Začněte naslouchat požadavkům klientů
Zpracování HTTP požadavků od klientů
Vypněte HTTP listener
Kroky 3 a 4 lze cyklicky provést tak, aby poskytovaly služby požadované více zákazníky.

Vytvořte HTTP listener objekt

Pro vytvoření HTTP listener objektu stačí vytvořit nový objekt HttpListener.

HttpListener listener = nový HttpListener();

Inicializace vyžaduje následující dva kroky

Rozsah URL pro poslech můžete přidat v Listener.Prefixes pomocí následující funkce:
posluchač. Prefixes.Add(prefix) //prefix musí končit na '/'
Zavolejte posluchače. Začni() připojit port a začít naslouchat potřebám klienta.
Přijímání HTTP požadavků

V .net 2.0 je přístup k objektům požadavků a odpovědí používaným třídou HttpListener zajištěn prostřednictvím objektu HttpListenerContext.

Nejjednodušší způsob, jak získat HttpListenerContext, je následující:

HttpListenerContext context = posluchač. GetContext();

Tato metoda zablokuje volací funkci, dokud není přijat klientský požadavek, a pokud chcete zlepšit rychlost odezvy, můžete použít asynchronní metodu listener. BeginGetContext() pro získání objektu HttpListenerContext.

Zpracování HTTP požadavků

Po získání HttpListenerContext můžete získat objekt, který reprezentuje požadavek klienta pomocí atributu Request, a objekt, který reprezentuje odpověď, kterou HttpListener pošle klientovi prostřednictvím atributu Response.

HttpListenerRequest request = kontext. Žádost;
HttpListenerResponse response = kontext. Odpověď;

Objekt HttpListenerRequest zde je podobný použití Request and Response v Asp a HttpListenerResponse, takže zde nebudu moc mluvit, níže můžete vidět příklad pro konkrétní použití.

Vypněte HTTP listener

Zavoláním posluchače. Funkce stop() pro vypnutí posluchače a uvolnění relevantních zdrojů

Příklad kódu:

pomocí System;
pomocí System.Collections.Generic;
pomocí System.Text;

pomocí System.Net;

jmenný prostor ConsoleApplication1
{
    Program tříd
    {
        static void Main (string[] args)
        {
            HttpListener listener = nový HttpListener();
            posluchač. předpony.add("http://localhost/"); Přidejte rozsah URL, které je potřeba poslouchat
            posluchač. Start(); Začněte naslouchat portu a přijímat požadavky klientů
            Console.WriteLine ("Listening...");

            Blokuje hlavní funkci, dokud není přijat požadavek klienta
            HttpListenerContext context = posluchač. GetContext();
            HttpListenerRequest request = kontext. Žádost;
            HttpListenerResponse response = kontext. Odpověď;

            řetězec odpověďŘetězec = řetězec. Formát("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Výstup odpovídajících informací klientovi.
            odpověď. ContentLength64 = buffer. Délka;
            System.IO.Stream output = odpověď. OutputStream;
            výstupu. Write(buffer, 0, buffer. délka);
            Uzavřete výstupní tok, abyste uvolnili odpovídající zdroje
            výstupu. Close();

            posluchač. Stop(); Vypněte HttpListener
        }
    }
}

Program je poměrně jednoduchý, nejprve vytvoří HTTP listener pro implementaci služby domény "http://localhost/time/", když obdrží vzdálený požadavek, převede aktuální čas na výstup řetězce pro klienta a poté ukončí posluchač.





Předchozí:Problémy a řešení pro AJAX mezidoménová volání na ASP.NET MVC nebo WebAPI služby
Další:Dne 3. prosince 2015 byla webová stránka oficiálně přejmenována na &quot;Code Farmer Network&quot; a tímto oznámena!
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com