Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 22743|Odpowiedź: 0

[Źródło] Implementuj prostą usługę Http za pomocą HttpListener

[Skopiuj link]
Opublikowano 02.12.2015 16:56:31 | | |
HttpListener zapewnia prosty, programowalny i sterowalny nasłuchiwacz protokołu HTTP. Pozwala to łatwo udostępniać niektóre usługi HTTP bez konieczności uruchamiania dużego programu usługowego takiego jak IIS.

Uwaga: Ta klasa jest dostępna tylko na komputerach z systemem operacyjnym Windows XP SP2 lub Windows Server 2003.

Ogólne kroki dotyczące korzystania z usług Http są następujące:

Stwórz obiekt nasłuchiwacza HTTP i inicjalizuj go
Dodaj prefiks URI, który trzeba odsłuchać
Zacznij nasłuchiwać próśb od klientów
Obsługa żądań Http od klientów
Wyłącz nasłuchiwacz HTTP
Kroki 3 i 4 można cyklicznie obsłużyć, aby zapewnić usługi na żądanie wielu klientów.

Stwórz obiekt nasłuchiwacza HTTP

Aby utworzyć obiekt słuchacza HTTP, wystarczy utworzyć nowy obiekt HttpListener.

Słuchacz HttpListener = nowy HttpListener();

Inicjalizacja wymaga następujących dwóch kroków

Możesz dodać zakres URL, aby odsłuchiwać w prefiksach listener.Prefiks, używając następującej funkcji:
słuchacz. Prefiksy. Dodaj (prefiks) //prefiks musi kończyć się na '/'
Zadzwoń do słuchacza. Rozpocznij() wiązanie portu i nasłuchuj potrzeb klienta.
Akceptuj żądania HTTP

W .net 2.0 dostęp do obiektów żądań i odpowiedzi używanych przez klasę HttpListener jest zapewniany przez obiekt HttpListenerContext.

Najprostszy sposób na uzyskanie HttpListenerContext jest następujący:

HttpListenerContext context = listener. GetContext();

Ta metoda zablokuje funkcję wywołania do czasu otrzymania żądania klienta, a jeśli chcesz poprawić szybkość odpowiedzi, możesz użyć asynchronicznego nasłuchiwacza. BeginGetContext(), aby uzyskać obiekt HttpListenerContext.

Obsługa żądań HTTP

Po uzyskaniu HttpListenerContext możesz uzyskać obiekt reprezentujący żądanie klienta przez atrybut Request oraz obiekt reprezentujący odpowiedź, którą HttpListener wyśle klientowi za pomocą atrybutu Response.

HttpListenerRequest request = kontekst. Prośba;
HttpListenerResponse response = kontekst. Odpowiedź;

Obiekt HttpListenerRequest tutaj jest podobny do użycia Request and Response w Asp oraz HttpListenerResponse, więc nie będę tu dużo mówić, możesz zobaczyć przykład poniżej do konkretnego zastosowania.

Wyłącz nasłuchiwacz HTTP

Dzwoniąc do słuchacza. Funkcja stop() wyłącza słuchacza i uwalnia odpowiednie zasoby

Przykład kodu:

z wykorzystaniem System;
używając System.Collections.Generic;
używając System.Text;

używając System.Net;

przestrzeń nazw ConsoleApplication1
{
    Program klasowy
    {
        static void Main (string[] args)
        {
            Słuchacz HttpListener = nowy HttpListener();
            słuchacz. Prefiksy.add("http://localhost/"); Dodaj zakres adresów URL, które trzeba odsłuchać
            słuchacz. Start(); Rozpocznij nasłuchiwanie na porcie i otrzymywanie żądań klientów
            Console.WriteLine("Słuchanie...");

            Blokuje główną funkcję do czasu otrzymania żądania klienta
            HttpListenerContext context = listener. GetContext();
            HttpListenerRequest request = kontekst. Prośba;
            HttpListenerResponse response = kontekst. Odpowiedź;

            odpowiedzi ciągu ciąguCiąg = ciąg. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Wypisz odpowiednie informacje do klienta.
            odpowiedź. ContentLength64 = bufor. Długość;
            System.IO.Stream output = odpowiedź. OutputStream;
            wynik. Write(buffer, 0, buffer). Długość);
            Zamknięcie strumienia wyjściowego, aby uwolnić odpowiednie zasoby
            wynik. Close();

            słuchacz. Stop(); Wyłącz HttpListener
        }
    }
}

Program jest stosunkowo prosty: najpierw tworzy nasłuchiwacz HTTP do implementacji usługi domeny "http://localhost/time/", gdy otrzymuje zdalne żądanie, konwertuje bieżący czas na wynik ciągu dla klienta, a następnie zamyka nasłuchiwacz.





Poprzedni:Problemy i rozwiązania wywołań międzydomenowych AJAX do usług ASP.NET MVC lub WebAPI
Następny:3 grudnia 2015 roku strona została oficjalnie przemianowana na &quot;Code Farmer Network&quot;, co zostało powiadomione!
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com