Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 22743|Svar: 0

[Kilde] Implementér en simpel HTTP-tjeneste med HttpListener

[Kopier link]
Opslået på 02/12/2015 16.56.31 | | |
HttpListener tilbyder en simpel, programmerbar og kontrollerbar HTTP-protokollytter. Det gør det nemt at levere nogle HTTP-tjenester uden at skulle starte et stort serviceprogram som IIS.

Bemærk: Denne klasse er kun tilgængelig på computere, der kører Windows XP SP2 eller Windows Server 2003 operativsystemer.

De generelle trin til at bruge HTTP-tjenester er som følger:

Opret et HTTP-lytterobjekt og initialiser det
Tilføj URI-præfikset, der skal lyttes til
Begynd at lytte efter forespørgsler fra klienter
Håndter HTTP-forespørgsler fra klienter
Sluk HTTP-lytteren
Trin 3 og 4 kan cykles for at levere tjenester, der anmodes af flere kunder.

Opret et HTTP-lytterobjekt

For at oprette et HTTP Listener-objekt behøver du blot at oprette et nyt HttpListener-objekt.

HttpListener lytter = ny HttpListener();

Initialisering kræver følgende to trin

Du kan tilføje URL-intervallet, som du skal lytte til i listener.Prefixes ved at bruge følgende funktion:
lytter. Præfikser.Add(præfiks) //præfiks skal ende på '/'
Ring til lytter. Start() for at binde porten og begynde at lytte efter klientens behov.
Accepter HTTP-anmodninger

I .NET 2.0 gives adgang til anmodnings- og svarobjekterne, som bruges af HttpListener-klassen, via objektet HttpListenerContext.

Den nemmeste måde at få HttpListenerContext på er som følger:

HttpListenerContext context = lytter. GetContext();

Denne metode blokerer kaldsfunktionen, indtil en klientforespørgsel modtages, og hvis du vil forbedre svarhastigheden, kan du bruge den asynkrone metode lytter. BeginGetContext() for at hente objektet HttpListenerContext.

Håndter HTTP-forespørgsler

Efter at have opnået HttpListenerContext, kan du hente objektet, der repræsenterer klientens anmodning via Request-attributten og objektet, der repræsenterer det svar, som HttpListener sender til klienten via Response-attributten.

HttpListenerRequest request = kontekst. Anmodning;
HttpListenerResponse svar = kontekst. Respons;

HttpListenerRequest-objektet her ligner brugen af Request and Response i Asp og HttpListenerResponse-objektet, så jeg vil ikke sige så meget her, du kan se eksemplet nedenfor til specifik brug.

Sluk HTTP-lytteren

Ved at kalde lytter. Stop()-funktionen for at slukke lytteren og frigøre de relevante ressourcer

Kodeeksempel:

ved brug af System;
ved brug af System.Collections.Generic;
ved brug af System.Text;

ved brug af System.Net;

navnerum ConsoleApplication1
{
    klasseprogram
    {
        statisk void Main(string[] args)
        {
            HttpListener lytter = ny HttpListener();
            lytter. Præfikser.Add("http://localhost/"); Tilføj det interval af URL'er, der skal lyttes til
            lytter. Start(); Begynd at lytte på porten og modtag klientanmodninger
            Console.WriteLine ("Lytter...");

            Blokerer hovedfunktionen, indtil en klientanmodning modtages
            HttpListenerContext context = lytter. GetContext();
            HttpListenerRequest request = kontekst. Anmodning;
            HttpListenerResponse svar = kontekst. Respons;

            strengresponsStreng = streng. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Output de tilsvarende oplysninger til klienten.
            svar. ContentLength64 = buffer. Længde;
            System.IO.Stream-output = respons. OutputStream;
            output. Skriv(buffer, 0, buffer. Længde);
            Luk outputstrømmen for at frigøre de tilsvarende ressourcer
            output. Close();

            lytter. Stop(); Sluk for HttpListener
        }
    }
}

Programmet er relativt simpelt: Opret først en HTTP-lytter til at implementere tjenesten af "http://localhost/time/"-domænet, og når det modtager en fjernforespørgsel, konverterer det den aktuelle tid til en streng-output til klienten og lukker derefter lytteren.





Tidligere:Problemer og løsninger for AJAX tværdomænekald til ASP.NET MVC- eller WebAPI-tjenester
Næste:Den 3. december 2015 blev hjemmesiden officielt omdøbt til &quot;Code Farmer Network&quot; og blev hermed underrettet!
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com