Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 22743|Antwoord: 0

[Bron] Implementeer een eenvoudige HTTP-service met HttpListener

[Link kopiëren]
Geplaatst op 02-12-2015 16:56:31 | | |
HttpListener biedt een eenvoudige, programmeerbare en beheersbare HTTP-protocolluisteraar. Het stelt je in staat om eenvoudig enkele HTTP-diensten te leveren zonder een groot serviceprogramma zoals IIS te hoeven starten.

Opmerking: Deze klasse is alleen beschikbaar op computers met Windows XP SP2 of Windows Server 2003 besturingssystemen.

De algemene stappen om HTTP-diensten te gebruiken zijn als volgt:

Maak een HTTP listener-object aan en initialiseer het
Voeg het URI-voorvoegsel toe dat beluisterd moet worden
Begin te luisteren naar verzoeken van klanten
Handel HTTP-verzoeken van clients af
Schakel de HTTP-luisteraar uit
Stappen 3 en 4 kunnen worden gecycleerd om diensten te leveren die door meerdere klanten worden gevraagd.

Maak een HTTP-luisterobject aan

Om een HTTP Listener-object te maken, hoef je alleen een nieuw HttpListener-object aan te maken.

HttpListener listener = nieuwe HttpListener();

Initialisatie vereist de volgende twee stappen

Je kunt het URL-bereik toevoegen om naar te luisteren in listener.Prefixes door de volgende functie te gebruiken:
luisteraar. Prefixes.Add (prefix) //prefix moet eindigen op '/'
Bel luisteraar. Start() om de poort te binden en luister naar de behoeften van de klant.
HTTP-verzoeken accepteren

In .NET 2.0 wordt toegang tot de verzoek- en responsobjecten die door de HttpListener-klasse worden gebruikt, via het HttpListenerContext-object verleend.

De gemakkelijkste manier om de HttpListenerContext te krijgen is als volgt:

HttpListenerContext context = luisteraar. GetContext();

Deze methode blokkeert de aanroepfunctie totdat er een clientverzoek is ontvangen, en als je de responssnelheid wilt verbeteren, kun je de asynchrone methode luisteraar gebruiken. BeginGetContext() om het HttpListenerContext-object te verkrijgen.

HTTP-verzoeken afhandelen

Na het verkrijgen van de HttpListenerContext kun je het object verkrijgen dat het verzoek van de client vertegenwoordigt via het Request-attribuut en het object dat het antwoord weergeeft dat de HttpListener via het Response-attribuut naar de client stuurt.

HttpListenerRequest request = context. Verzoek;
HttpListenerResponse antwoord = context. Respons;

Het HttpListenerRequest-object hier lijkt op het gebruik van Request and Response in Asp en HttpListenerResponse-objecten, dus ik zal hier niet veel zeggen; je kunt het voorbeeld hieronder zien voor specifiek gebruik.

Schakel de HTTP-luisteraar uit

Door de luisteraar te bellen. Stop()-functie om de luisteraar uit te schakelen en de relevante bronnen vrij te maken

Codevoorbeeld:

met behulp van System;
met behulp van System.Collections.Generic;
gebruik van System.Text;

met System.Net;

naamruimte ConsoleApplication1
{
    Klasprogramma
    {
        statische void Main(string[] args)
        {
            HttpListener listener = nieuwe HttpListener();
            luisteraar. Voorsonderheden.Add("http://localhost/"); Voeg het bereik van URL's toe dat beluisterd moet worden
            luisteraar. Start(); Begin met luisteren op de poort en ontvang clientverzoeken
            Console.WriteLine ("Luisteren...");

            Blokkeert de hoofdfunctie totdat een clientverzoek is ontvangen
            HttpListenerContext context = luisteraar. GetContext();
            HttpListenerRequest request = context. Verzoek;
            HttpListenerResponse antwoord = context. Respons;

            string responseString = string. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Voer de bijbehorende informatie uit naar de client.
            reactie. ContentLength64 = buffer. Lengte;
            System.IO.Stream output = respons. OutputStream;
            output. Write(buffer, 0, buffer. Lengte);
            Sluit de uitvoerstroom om de bijbehorende middelen vrij te maken
            output. Close();

            luisteraar. Stop(); Zet HttpListener uit
        }
    }
}

Het programma is relatief eenvoudig: maak eerst een HTTP-luisteraar aan om de dienst van het "http://localhost/time/"-domein te implementeren; wanneer het een externe opdracht ontvangt, zet het de huidige tijd om in een string-uitvoer naar de client, en sluit vervolgens de luisteraar.





Vorig:Problemen en oplossingen voor AJAX cross-domain aanroepen naar ASP.NET MVC- of WebAPI-diensten
Volgend:Op 3 december 2015 werd de website officieel hernoemd tot &quot;Code Farmer Network&quot;, hierbij op de hoogte gebracht!
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com