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.
|