Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 22743|Antwort: 0

[Quelle] Implementiere einen einfachen HTTP-Dienst mit HttpListener

[Link kopieren]
Veröffentlicht am 02.12.2015 16:56:31 | | |
HttpListener bietet einen einfachen, programmierbaren und steuerbaren HTTP-Protokoll-Listener. Es ermöglicht Ihnen, einige HTTP-Dienste einfach bereitzustellen, ohne ein großes Serviceprogramm wie IIS starten zu müssen.

Hinweis: Diese Klasse ist nur auf Computern mit Windows XP SP2 oder Windows Server 2003 Betriebssystemen verfügbar.

Die allgemeinen Schritte zur Nutzung von HTTP-Diensten sind wie folgt:

Erstelle ein HTTP-Listener-Objekt und initialisiere es
Füge das URI-Präfix hinzu, das gehört werden muss
Fang an, auf Anfragen von Kunden zu achten
Behandle HTTP-Anfragen von Clients
Schalte den HTTP-Listener aus
Die Schritte 3 und 4 können so durchgeführt werden, dass sie Dienstleistungen anbieten, die von mehreren Kunden angefordert werden.

Erstellen Sie ein HTTP-Listener-Objekt

Um ein HTTP-Listener-Objekt zu erstellen, muss man nur ein neues HttpListener-Objekt erstellen.

HttpListener Listener = neuer HttpListener();

Die Initialisierung erfordert die folgenden zwei Schritte

Sie können den URL-Bereich zum Hören in listener.Prefixes hinzufügen, indem Sie folgende Funktion verwenden:
Zuhörer. Präfixe.Add(Präfix) //Präfix muss auf '/' enden.
Ruf den Hörer an. Start(), um den Port zu binden und auf die Bedürfnisse des Kunden zu achten.
HTTP-Anfragen akzeptieren

In .NET 2.0 erfolgt der Zugriff auf die von der HttpListener-Klasse verwendeten Anfrage- und Antwortobjekte über das Objekt HttpListenerContext.

Der einfachste Weg, den HttpListenerContext zu erhalten, ist wie folgt:

httpListenerContext context = Listener. GetContext();

Diese Methode blockiert die Aufruffunktion, bis eine Client-Anfrage eingegangen ist, und wenn Sie die Antwortgeschwindigkeit verbessern möchten, können Sie die asynchrone Methode Listener verwenden. BeginGetContext(), um das Objekt HttpListenerContext zu erhalten.

HTTP-Anfragen bearbeiten

Nachdem Sie den HttpListenerContext erhalten haben, können Sie das Objekt erhalten, das die Client-Anfrage über das Request-Attribut repräsentiert, und das Objekt, das die Antwort repräsentiert, die der HttpListener über das Response-Attribut an den Client senden wird.

HttpListenerRequest-Anfrage = Kontext. Bitte;
HttpListenerResponse Antwort = Kontext. Reaktion;

Das HttpListenerRequest-Objekt hier ähnelt der Verwendung von Request and Response in Asp und HttpListenerResponse, daher werde ich hier nicht viel sagen, du kannst das untenstehende Beispiel für spezifische Zwecke sehen.

Schalte den HTTP-Listener aus

Indem du den Zuhörer anrufst. Stop()-Funktion zu deaktivieren, um den Hörer auszuschalten und die relevanten Ressourcen freizusetzen

Codebeispiel:

mit System;
mit System.Collections.Generic;
mit System.Text;

mit System.Net;

namensraum ConsoleApplication1
{
    Klassenprogramm
    {
        statisches Void Haupt(string[] args)
        {
            HttpListener Listener = neuer HttpListener();
            Zuhörer. Präfixe.Add("http://localhost/"); Füge die Reihe der URLs hinzu, die gehört werden müssen
            Zuhörer. Start(); Beginnen Sie mit dem Zuhören am Port und empfangen Sie Client-Anfragen
            Console.WriteLine ("Listening...");

            Blockiert die Hauptfunktion, bis eine Client-Anfrage eingegangen ist
            httpListenerContext context = Listener. GetContext();
            HttpListenerRequest-Anfrage = Kontext. Bitte;
            HttpListenerResponse Antwort = Kontext. Reaktion;

            String ResponseString = String. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Gib die entsprechenden Informationen an den Client aus.
            Antwort. ContentLength64 = Puffer. Länge;
            System.IO.Stream-Ausgabe = Antwort. OutputStream;
            Output. Write(buffer, 0, buffer. Länge);
            Schließen Sie den Ausgangsstrom, um die entsprechenden Ressourcen freizusetzen
            Output. Close();

            Zuhörer. Stop(); Schalten Sie HttpListener aus
        }
    }
}

Das Programm ist relativ einfach: Zuerst erstellt man einen HTTP-Listener, um den Dienst der "http://localhost/time/"-Domäne zu implementieren; wenn er eine entfernte Anfrage erhält, wandelt er die aktuelle Zeit in eine String-Ausgabe an den Client um und schließt dann den Listener.





Vorhergehend:Probleme und Lösungen für AJAX-Domänenübergreifende Aufrufe zu ASP.NET MVC- oder WebAPI-Dienste
Nächster:Am 3. Dezember 2015 wurde die Website offiziell in &quot;Code Farmer Network&quot; umbenannt und hiermit benachrichtigt!
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com