Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 22743|Atbildi: 0

[Avots] Vienkārša Http pakalpojuma ieviešana ar HttpListener

[Kopēt saiti]
Publicēts 02.12.2015 16:56:31 | | |
HttpListener nodrošina vienkāršu, programmējamu un kontrolējamu HTTP protokola uztvērēju. Tas ļauj viegli nodrošināt dažus Http pakalpojumus, nestartējot lielu pakalpojumu programmu, piemēram, IIS.

Piezīme: Šī klase ir pieejama tikai datoros, kuros darbojas operētājsistēmas Windows XP SP2 vai Windows Server 2003.

Vispārīgās Http pakalpojumu izmantošanas darbības ir šādas:

HTTP uztvērēja objekta izveide un inicializēšana
Klausāmā URI prefiksa pievienošana
Sāciet klausīties klientu pieprasījumus
Klientu Http pieprasījumu apstrāde
HTTP uztvērēja izslēgšana
3. un 4. darbību var cikliski, lai nodrošinātu vairāku klientu pieprasītos pakalpojumus.

HTTP uztvērēja objekta izveide

Lai izveidotu HTTP uztvērēja objektu, ir jāizveido tikai jauns HttpListener objekts.

HttpListener klausītājs = jauns HttpListener();

Inicializācijai ir jāveic šādas divas darbības

Varat pievienot klausāmo URL diapazonu klausītājam.Prefiksi, izmantojot šādu funkciju:
klausītājs. Prefiksi.Add(prefikss) //prefiksam jābeidzas ar '/'
Zvaniet klausītājam. Start(), lai piesaistītu portu un sāktu klausīties klienta vajadzības.
HTTP pieprasījumu pieņemšana

Programmā .net 2.0 piekļuve pieprasījuma un atbildes objektiem, ko izmanto HttpListener klase, tiek nodrošināta, izmantojot objektu HttpListenerContext.

Vienkāršākais veids, kā iegūt HttpListenerContext, ir šāds:

HttpListenerContext context = klausītājs. GetContext();

Šī metode bloķēs zvana funkciju, līdz tiek saņemts klienta pieprasījums, un, ja vēlaties uzlabot atbildes ātrumu, varat izmantot asinhronās metodes klausītāju. BeginGetContext(), lai iegūtu objektu HttpListenerContext.

HTTP pieprasījumu apstrāde

Pēc HttpListenerContext iegūšanas varat iegūt objektu, kas attēlo klienta pieprasījumu, izmantojot atribūtu Request, un objektu, kas attēlo atbildi, ko HttpListener nosūtīs klientam, izmantojot atribūtu Response.

HttpListenerRequest pieprasījums = konteksts. Pieprasījums;
HttpListenerResponse atbilde = konteksts. Atbilde;

HttpListenerRequest objekts šeit ir līdzīgs pieprasījuma un atbildes izmantošanai Asp un HttpListenerResponse objektā, tāpēc es šeit daudz neteikšu, jūs varat redzēt zemāk redzamo piemēru konkrētai lietošanai.

HTTP uztvērēja izslēgšana

Zvanot klausītājam. Stop() funkcija, lai izslēgtu klausītāju un atbrīvotu attiecīgos resursus

Koda piemērs:

izmantojot Sistēmu;
izmantojot System.Collections.Generic;
izmantojot System.Text;

izmantojot System.Net;

nosaukumvieta ConsoleApplication1
{
    nodarbību programma
    {
        statisks tukšums Main(virkne[] argumenti)
        {
            HttpListener klausītājs = jauns HttpListener();
            klausītājs. Prefiksi.Add("http://localhost/"); Klausāmo URL diapazona pievienošana
            klausītājs. Sākums(); Sāciet klausīties portā un saņemiet klientu pieprasījumus
            Console.WriteLine("Klausīšanās...");

            Bloķē galveno funkciju, līdz tiek saņemts klienta pieprasījums
            HttpListenerContext context = klausītājs. GetContext();
            HttpListenerRequest pieprasījums = konteksts. Pieprasījums;
            HttpListenerResponse atbilde = konteksts. Atbilde;

            virkne responseString = virkne. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            baits[] buferis = System.Text.Encoding.UTF8.GetBytes(responseString);
            Izvadiet klientam atbilstošo informāciju.
            atbilde. ContentLength64 = buferis. Garums;
            System.IO.Stream izeja = atbilde. Izejas plūsma;
            izeja. Write(buferis, 0, buferis. Garums);
            Aizveriet izvades plūsmu, lai atbrīvotu atbilstošos resursus
            izeja. Aizvērt ();

            klausītājs. Stop(); HttpListener izslēgšana
        }
    }
}

Programma ir salīdzinoši vienkārša, vispirms izveidojiet HTTP klausītāju, lai īstenotu domēna "http://localhost/time/" pakalpojumu, saņemot attālo pieprasījumu, tā pārvērš pašreizējo laiku virknes izvadē klientam un pēc tam aizver klausītāju.





Iepriekšējo:Problēmas un risinājumi AJAX starpdomēnu zvaniem uz ASP.NET MVC vai WebAPI pakalpojumiem
Nākamo:2015. gada 3. decembrī mājas lapa tika oficiāli pārdēvēta par &quot;Code Farmer Network&quot;, ar šo paziņots!
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com