Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 22743|Válasz: 0

[Forrás] Egyszerű Http szolgáltatás megvalósítása a HttpListenerrel

[Linket másol]
Közzétéve 2015. 12. 02. 16:56:31 | | |
A HttpListener egyszerű, programozható és irányítható HTTP protokoll hallgatót biztosít. Lehetővé teszi, hogy könnyedén nyújtsd néhány Http szolgáltatást anélkül, hogy nagy szolgáltatási programot, például az IIS-t kellene indítani.

Megjegyzés: Ez az osztály csak Windows XP SP2 vagy Windows Server 2003 operációs rendszereken elérhető.

A Http szolgáltatások általános lépései a következők:

Hozz létre egy HTTP hallgató objektumot és inicializáld
Add hozzá az URI előtagot, amit hallgatni kell
Kezdj el hallgatni az ügyfelek kéréseit.
Kezelni a kliensektől érkező HTTP kéréseket
Kapcsold ki a HTTP hallgatót
A 3. és 4. lépés körbevált módon több ügyfél által kért szolgáltatásokat nyújthat.

Hozzon létre HTTP hallgató objektumot

HTTP hallgató objektum létrehozásához csak egy új HttpListener objektumot kell létrehozni.

HttpListener hallgató = új HttpListener();

Az inicializáció két lépést igényel

Az URL-tartományt hozzáadhatod a listener.-ben a hallgatáshoz. Előtagokat a következő funkcióval használva:
hallgató. Prefixes.Add(prefix) //prefix '/' betűvel kell végződnie
Hívd fel a hallgatót. Start() a port kötéséhez, és elkezdd hallgatni az ügyfél igényeit.
HTTP kérések elfogadása

A .net 2.0-ban a HttpListenerContext objektum által használt kérés- és válaszobjektumokhoz való hozzáférés a HttpListenerContext objektumon keresztül érhető el.

A legegyszerűbb módja a HttpListenerContext megszerzésének a következő:

HttpListenerContext context = hallgató. GetContext();

Ez a módszer blokkolja a hívási függvényt, amíg nem érkezik egy kliens kérés, és ha javítani szeretnéd a válaszsebességet, használhatod az aszinkron metódushallgatót. BeginGetContext() segítségével megszerezzük a HttpListenerContext objektumot.

HTTP kérések kezelése

Miután megszerezte a HttpListenerContext-et, megszerezheti azt az objektumot, amely az ügyfél kérését képviseli, a Request attribútumon keresztül, valamint azt az objektumot, amely a HttpListener által a Response attribútumon keresztül küldött választ a kliensnek.

HttpListenerRequest request = kontextus. Kérés;
HttpListenerResponse válasz = kontextus. Válasz;

A HttpListenerRequest objektum itt hasonló az Ask and Response használatához az Asp és a HttpListenerResponse objektumban, így nem mondok sokat itt, lásd az alábbi példát a konkrét felhasználáshoz.

Kapcsold ki a HTTP hallgatót

A hallgató felhívásával. Stop() funkció kikapcsolja a hallgatót és felszabadítja a releváns erőforrásokat

Kód példa:

System használatával;
System.Collections.Generic használatával;
System.Text használatával;

System.Net használatával;

névtér ConsoleApplication1
{
    Osztályprogram
    {
        statikus void Main(string[] args)
        {
            HttpListener hallgató = új HttpListener();
            hallgató. Előtagok.Add("http://localhost/"); Add hozzá az URL-ek tartományát, amelyeket hallgatni kell
            hallgató. Start(); Kezdj el hallgatni a portot, és fogadd el az ügyfélkéréseket
            Console.WriteLine ("Hallgatás...");

            Blokkolja a fő funkciót, amíg nem érkezik egy kliens kérés
            HttpListenerContext context = hallgató. GetContext();
            HttpListenerRequest request = kontextus. Kérés;
            HttpListenerResponse válasz = kontextus. Válasz;

            string responseString = string. Format(<HTML><BODY>" {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            A megfelelő információkat a kliensnek adja ki.
            válasz. ContentLength64 = buffer. Hossz;
            System.IO.Stream kimenet = válasz. OutputStream;
            Kimenet. Write(buffer, 0, buffer. Hossz);
            Zárd be a kimeneti áramot, hogy felszabadítsd a megfelelő erőforrásokat
            Kimenet. Close();

            hallgató. Stop(); Kapcsold ki a HttpListenert
        }
    }
}

A program viszonylag egyszerű: először létrehoznak egy HTTP hallgatót, amely a "http://localhost/time/" domain szolgáltatását valósítja meg, amikor távoli kérést kap, az aktuális időt egy string kimenetté alakítja át az ügyfélnek, majd lezárja a hallgatót.





Előző:Problémák és megoldások az AJAX cross-domain hívásokhoz ASP.NET MVC vagy WebAPI szolgáltatásokhoz
Következő:2015. december 3-án a weboldalt hivatalosan &quot;Code Farmer Network&quot; névre nevezték át, ezennel értesítjük!
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com