Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 22743|Atsakyti: 0

[Šaltinis] Įdiekite paprastą Http paslaugą naudodami "HttpListener"

[Kopijuoti nuorodą]
Paskelbta 2015-12-02 16:56:31 | | |
"HttpListener" suteikia paprastą, programuojamą ir valdomą HTTP protokolo klausytuvą. Tai leidžia lengvai teikti kai kurias Http paslaugas nepaleidžiant didelės paslaugų programos, pvz., IIS.

Pastaba: Ši klasė galima tik kompiuteriuose, kuriuose veikia Windows XP SP2 arba Windows Server 2003 operacinės sistemos.

Bendrieji HTTP paslaugų naudojimo veiksmai yra šie:

HTTP klausytuvo objekto kūrimas ir inicijavimas
Pridėkite URI priešdėlį, kurio reikia klausytis
Pradėkite klausytis klientų užklausų
Klientų Http užklausų tvarkymas
HTTP klausytuvo išjungimas
3 ir 4 veiksmus galima atlikti cikliškai, kad būtų teikiamos paslaugos, kurių prašo keli klientai.

HTTP klausytuvo objekto kūrimas

Norėdami sukurti HTTP klausytuvo objektą, jums tereikia sukurti naują HttpListener objektą.

HttpListener klausytojas = naujas HttpListener();

Inicijavimas reikalauja šių dviejų veiksmų

Galite įtraukti klausymosi URL diapazoną klausytojuje.Prefixes naudodami šią funkciją:
klausytojas. Prefixes.Add(priešdėlis) //priešdėlis turi baigtis '/'
Skambinkite klausytojui. Start(), kad susietumėte prievadą ir pradėtumėte klausytis kliento poreikių.
Priimti HTTP užklausas

.net 2.0 prieiga prie užklausos ir atsakymo objektų, kuriuos naudoja HttpListener klasė, suteikiama per HttpListenerContext objektą.

Lengviausias būdas gauti "HttpListenerContext" yra toks:

HttpListenerContext context = klausytojas. GetContext();

Šis metodas blokuos skambučio funkciją, kol bus gauta kliento užklausa, o jei norite pagerinti atsakymo greitį, galite naudoti asinchroninio metodo klausytuvą. BeginGetContext(), kad gautumėte objektą HttpListenerContext.

HTTP užklausų tvarkymas

Gavę HttpListenerContext, galite gauti objektą, kuris atspindi kliento užklausą naudodami atributą Request, ir objektą, kuris nurodo atsakymą, kurį HttpListener siųs klientui per atributą Response.

HttpListenerRequest užklausa = kontekstas. Prašymas;
HttpListenerResponse atsakymas = kontekstas. Atsakymas;

HttpListenerRequest objektas čia yra panašus į užklausos ir atsakymo naudojimą Asp ir HttpListenerResponse objekte, todėl čia daug nepasakysiu, galite pamatyti žemiau pateiktą pavyzdį konkrečiam naudojimui.

HTTP klausytuvo išjungimas

Paskambinus klausytojui. Stop() funkcija, skirta išjungti klausytoją ir atlaisvinti atitinkamus išteklius

Kodo pavyzdys:

naudojantis Sistema;
naudojant System.Collections.Generic;
naudojant System.Text;

naudojant System.Net;

vardų sritis ConsoleApplication1
{
    klasės programa
    {
        static void Main(string[] args)
        {
            HttpListener klausytojas = naujas HttpListener();
            klausytojas. Prefixes.Add("http://localhost/"); Pridėkite URL, kurių reikia klausytis, diapazoną
            klausytojas. Pradžia(); Pradėkite klausytis prievade ir gaukite klientų užklausas
            Console.WriteLine("Klausymas...");

            Blokuoja pagrindinę funkciją, kol gaunama kliento užklausa
            HttpListenerContext context = klausytojas. GetContext();
            HttpListenerRequest užklausa = kontekstas. Prašymas;
            HttpListenerResponse atsakymas = kontekstas. Atsakymas;

            string responseString = eilutė. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Išveskite atitinkamą informaciją klientui.
            atsakymas. ContentLength64 = buferis. Ilgis;
            System.IO.Stream išvestis = atsakymas. Išvesties srautas;
            išvestis. Write(buferis, 0, buferis. ilgis);
            Uždarykite išvesties srautą, kad atlaisvintumėte atitinkamus išteklius
            išvestis. Uždaryti ();

            klausytojas. Stop(); Išjunkite "HttpListener"
        }
    }
}

Programa yra gana paprasta, pirmiausia sukurkite HTTP klausytuvą, kad įgyvendintumėte "http://localhost/time/" domeno paslaugą, kai jis gauna nuotolinę užklausą, jis konvertuoja esamą laiką į eilutės išvestį klientui, o tada uždaro klausytoją.





Ankstesnis:AJAX kryžminių domenų iškvietimų į ASP.NET MVC arba WebAPI paslaugas problemos ir sprendimai
Kitą:2015 m. gruodžio 3 d. svetainė buvo oficialiai pervadinta į &quot;Code Farmer Network&quot;, pranešta!
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com