Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 22743|Răspunde: 0

[Sursă] Implementează un serviciu Http simplu cu HttpListener

[Copiază linkul]
Postat pe 02.12.2015 16:56:31 | | |
HttpListener oferă un ascultător simplu, programabil și controlabil pentru protocolul HTTP. Îți permite să oferi ușor unele servicii Http fără să fie nevoie să începi un program mare de servicii precum IIS.

Notă: Această clasă este disponibilă doar pe calculatoarele care rulează sisteme de operare Windows XP SP2 sau Windows Server 2003.

Pașii generali pentru utilizarea serviciilor Http sunt următorii:

Creează un obiect ascultător HTTP și inițializează-l
Adaugă prefixul URI care trebuie ascultat
Începe să asculți cererile clienților
Gestionează cererile Http de la clienți
Dezactivează ascultătorul HTTP
Pașii 3 și 4 pot fi ciclați pentru a oferi servicii solicitate de mai mulți clienți.

Creează un obiect ascultător HTTP

Pentru a crea un obiect ascultător HTTP, trebuie doar să creezi un nou obiect HttpListener.

Ascultător HttpAscultător = Ascultător HttpNou();

Inițializarea necesită următorii doi pași

Poți adăuga intervalul URL pentru a asculta în listener. Prefixe folosind următoarea funcție:
Ascultător. Prefixe.Add(prefix) //prefix trebuie să se termine cu '/'
Sună-l pe ascultător. Începe() să asociezi portul și începe să asculți nevoile clientului.
Acceptă cererile HTTP

În .net 2.0, accesul la obiectele de cerere și răspuns folosite de clasa HttpListener este oferit prin intermediul obiectului HttpListenerContext.

Cea mai simplă metodă de a obține HttpListenerContext este următoarea:

HttpListenerContext = ascultător. GetContext();

Această metodă va bloca funcția de apel până când este primită o cerere client, iar dacă doriți să îmbunătățiți viteza de răspuns, puteți folosi ascultătorul metodei asincre. BeginGetContext() pentru a obține obiectul HttpListenerContext.

Gestionarea cererilor HTTP

După obținerea HttpListenerContext, puteți obține obiectul care reprezintă cererea clientului prin atributul Request și obiectul care reprezintă răspunsul pe care HttpListener îl va trimite clientului prin atributul Response.

Cerere HttpListenerRequest = context. Cerere:
HttpListenerResponse răspuns = context. Răspuns;

Obiectul HttpListenerRequest de aici este similar cu utilizarea Request and Response în obiectele Asp și HttpListenerResponse, așa că nu voi spune prea multe aici, poți vedea exemplul de mai jos pentru utilizare specifică.

Dezactivează ascultătorul HTTP

Sunând ascultătorul. Stop() pentru a opri ascultătorul și a elibera resursele relevante

Exemplu de cod:

folosind Sistem;
folosind System.Collections.Generic;
folosind System.Text;

folosind System.Net;

spațiu de nume ConsoleApplication1
{
    Programul clasei
    {
        static void Main(string[] args)
        {
            Ascultător HttpAscultător = Ascultător HttpNou();
            Ascultător. Prefixe. Add("http://localhost/"); Adaugă gama de URL-uri care trebuie ascultate
            Ascultător. Start(); Începe să asculți pe port și să primești cereri de la clienți
            Console.WriteLine("Ascultând...");

            Blochează funcția principală până când este primită o cerere clientă
            HttpListenerContext = ascultător. GetContext();
            Cerere HttpListenerRequest = context. Cerere:
            HttpListenerResponse răspuns = context. Răspuns;

            răspuns string String = string. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Trimite informațiile corespunzătoare către client.
            răspuns. ContentLength64 = buffer. Lungime;
            System.IO.Stream output = răspuns. OutputStream;
            Ieșire. Write(buffer, 0, buffer. lungime);
            Închide fluxul de ieșire pentru a elibera resursele corespunzătoare
            Ieșire. Apropiat();

            Ascultător. Stop(); Dezactivează HttpListener
        }
    }
}

Programul este relativ simplu: mai întâi creează un ascultător HTTP pentru a implementa serviciul domeniului "http://localhost/time/", când primește o cerere la distanță, convertește ora curentă într-o ieșire de șir către client, apoi închide ascultătorul.





Precedent:Probleme și soluții pentru apelurile AJAX cross-domain către ASP.NET servicii MVC sau WebAPI
Următor:La 3 decembrie 2015, site-ul a fost redenumit oficial &quot;Code Farmer Network&quot;, notificat de la acest moment!
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com