Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 22743|Svar: 0

[Källa] Implementera en enkel Http-tjänst med HttpListener

[Kopiera länk]
Publicerad på 2015-12-02 16:56:31 | | |
HttpListener tillhandahåller en enkel, programmerbar och kontrollerbar HTTP-protokolllyssnare. Det gör det enkelt att tillhandahålla vissa HTTP-tjänster utan att behöva starta ett stort tjänsteprogram som IIS.

Observera: Denna klass finns endast tillgänglig på datorer som kör Windows XP SP2 eller Windows Server 2003 operativsystem.

De allmänna stegen för att använda HTTP-tjänster är följande:

Skapa ett HTTP-lyssnarobjekt och initiera det
Lägg till URI-prefixet som behöver lyssnas på
Börja lyssna efter förfrågningar från kunder
Hantera Http-förfrågningar från klienter
Stäng av HTTP-lyssnaren
Steg 3 och 4 kan cyklas för att tillhandahålla tjänster som efterfrågas av flera kunder.

Skapa ett HTTP-lyssnarobjekt

För att skapa ett HTTP-lyssnarobjekt behöver du bara skapa ett nytt HttpListener-objekt.

HttpListener listener = ny HttpListener();

Initiering kräver följande två steg

Du kan lägga till URL-intervallet för att lyssna på i listener.Prefix genom att använda följande funktion:
lyssnare. Prefix. Add(prefix) //prefix måste sluta på '/'
Ring lyssnaren. Start() för att binda porten och börja lyssna efter klientens behov.
Acceptera HTTP-förfrågningar

I .NET 2.0 ges åtkomst till de begäran- och svarsobjekt som används av HttpListener-klassen via objektet HttpListenerContext.

Det enklaste sättet att få HttpListenerContext är följande:

HttpListenerContext context = lyssnare. GetContext();

Denna metod blockerar anropsfunktionen tills en klientförfrågan tas emot, och om du vill förbättra svarshastigheten kan du använda den asynkrona metoden lyssnaren. BeginGetContext() för att hämta objektet HttpListenerContext.

Hantera HTTP-förfrågningar

Efter att ha erhållit HttpListenerContext kan du hämta objektet som representerar klientens begäran via Request-attributet och objektet som representerar svaret som HttpListener skickar till klienten via Response-attributet.

HttpListenerRequest-begäran = kontext. Begäran;
httpListenerResponse svar = kontext. Respons;

Objektet HttpListenerRequest här liknar användningen av Request and Response i Asp och HttpListenerResponse-objektet, så jag kommer inte säga så mycket här, du kan se exemplet nedan för specifik användning.

Stäng av HTTP-lyssnaren

Genom att kalla på lyssnaren. Stop()-funktionen för att stänga av lyssnaren och frigöra relevanta resurser

Kodexempel:

med System;
med System.Collections.Generic;
med System.Text;

med hjälp av System.Net;

namnrymd ConsoleApplication1
{
    Klassprogram
    {
        statiskt tomrum Main(string[] args)
        {
            HttpListener listener = ny HttpListener();
            lyssnare. Prefix.Add("http://localhost/"); Lägg till intervallet av URL:er som behöver lyssnas på
            lyssnare. Start(); Börja lyssna på porten och ta emot klientförfrågningar
            Console.WriteLine ("Lyssnar...");

            Blockerar huvudfunktionen tills en klientförfrågan tas emot
            HttpListenerContext context = lyssnare. GetContext();
            HttpListenerRequest-begäran = kontext. Begäran;
            httpListenerResponse svar = kontext. Respons;

            strängresponsSträng = sträng. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Exportera motsvarande information till klienten.
            svar. ContentLength64 = buffert. Längd;
            System.IO.Stream-utgång = svar. OutputStream;
            Resultat. Write(buffer, 0, buffer. längd);
            Stäng utgångsströmmen för att frigöra motsvarande resurser
            Resultat. Close();

            lyssnare. Stop(); Stäng av HttpListener
        }
    }
}

Programmet är relativt enkelt: skapa först en HTTP-lyssnare för att implementera tjänsten för domänen "http://localhost/time/", när den tar emot en fjärrförfrågan omvandlar den aktuell tid till en strängutgång till klienten och stänger sedan lyssnaren.





Föregående:Problem och lösningar för AJAX domänöverskridande anrop till ASP.NET MVC- eller WebAPI-tjänster
Nästa:Den 3 december 2015 bytte webbplatsen officiellt namn till &quot;Code Farmer Network&quot;, och meddelades härmed!
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com