Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 22743|Svare: 0

[Kilde] Implementer en enkel Http-tjeneste med HttpListener

[Kopier lenke]
Publisert på 02.12.2015 16:56:31 | | |
HttpListener tilbyr en enkel, programmerbar og kontrollerbar HTTP-protokolllytter. Det lar deg enkelt tilby noen HTTP-tjenester uten å måtte starte et stort tjenesteprogram som IIS.

Merk: Denne klassen er kun tilgjengelig på datamaskiner som kjører Windows XP SP2 eller Windows Server 2003 operativsystemer.

De generelle stegene for å bruke Http-tjenester er som følger:

Opprett et HTTP-lytterobjekt og initialiser det
Legg til URI-prefikset som må lyttes til
Begynn å lytte etter forespørsler fra klienter
Håndter HTTP-forespørsler fra klienter
Slå av HTTP-lytteren
Trinn 3 og 4 kan kjøres for å tilby tjenester som forespørres av flere kunder.

Opprett et HTTP-lytterobjekt

For å lage et HTTP-lytterobjekt trenger du bare å opprette et nytt HttpListener-objekt.

HttpListener listener = ny HttpListener();

Initialisering krever følgende to trinn

Du kan legge til URL-området du skal lytte til i listener.Prefikser ved å bruke følgende funksjon:
lytter. Prefikser. Legg til (prefiks) //prefiks må ende på '/'
Ring lytter. Start() for å binde porten og begynne å lytte etter klientens behov.
Aksepter HTTP-forespørsler

I .NET 2.0 gis tilgang til forespørsels- og svarobjektene som brukes av HttpListener-klassen via HttpListenerContext-objektet.

Den enkleste måten å få HttpListenerContext på er som følger:

HttpListenerContext context = listener. GetContext();

Denne metoden vil blokkere kallfunksjonen til en klientforespørsel mottas, og hvis du vil forbedre responshastigheten, kan du bruke den asynkrone metoden lytter. BeginGetContext() for å hente HttpListenerContext-objektet.

Håndter HTTP-forespørsler

Etter å ha hentet HttpListenerContext, kan du hente objektet som representerer klientens forespørsel via Request-attributtet og objektet som representerer svaret som HttpListener vil sende til klienten via Response-attributtet.

HttpListenerRequest-forespørsel = kontekst. Forespørsel;
HttpListenerResponse svar = kontekst. Respons;

HttpListenerRequest-objektet her ligner på bruken av Request and Response i Asp og HttpListenerResponse-objektet, så jeg vil ikke si så mye her, du kan se eksempelet nedenfor for spesifikk bruk.

Slå av HTTP-lytteren

Ved å ringe lytter. Stop()-funksjonen for å slå av lytteren og frigjøre relevante ressurser

Kodeeksempel:

ved bruk av System;
ved bruk av System.Collections.Generic;
ved bruk av System.Text;

bruk av System.Net;

navnerom ConsoleApplication1
{
    Klasseprogram
    {
        statisk void Main(string[] args)
        {
            HttpListener listener = ny HttpListener();
            lytter. Prefikser.Legg til ("http://localhost/"); Legg til rekkevidden av URL-er som må lyttes til
            lytter. Start(); Begynn å lytte på porten og motta klientforespørsler
            Console.WriteLine ("Lytter...");

            Blokkerer hovedfunksjonen til en klientforespørsel mottas
            HttpListenerContext context = listener. GetContext();
            HttpListenerRequest-forespørsel = kontekst. Forespørsel;
            HttpListenerResponse svar = kontekst. Respons;

            strengresponsStreng = streng. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Send ut den tilsvarende informasjonen til klienten.
            respons. ContentLength64 = buffer. Lengde;
            System.IO.Stream-utgang = respons. OutputStream;
            Output. Write(buffer, 0, buffer. Lengde);
            Lukk utgangsstrømmen for å frigjøre tilsvarende ressurser
            Output. Close();

            lytter. Stop(); Slå av HttpListener
        }
    }
}

Programmet er relativt enkelt: Først opprett en HTTP-lytter for å implementere tjenesten til "http://localhost/time/"-domenet, når det mottar en ekstern forespørsel, konverterer det gjeldende tid til en strengutgang til klienten, og lukker deretter lytteren.





Foregående:Problemer og løsninger for AJAX tverrdomenekall til ASP.NET MVC- eller WebAPI-tjenester
Neste:Den 3. desember 2015 ble nettsiden offisielt omdøpt til &quot;Code Farmer Network&quot;, herved varslet!
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com