|
|
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 WebAPIUrmător:La 3 decembrie 2015, site-ul a fost redenumit oficial "Code Farmer Network", notificat de la acest moment!
|