.NET-HILFE

HttpListener C# (Wie es funktioniert für Entwickler)

Veröffentlicht 13. August 2024
Teilen Sie:

Einführung

Eines der nützlichsten Tools in C# für die Erstellung einfacher eigenständiger Webserver ist die Klasse HttpListener. Es ist im System.Net-Namensraum enthalten und bietet eine Methode für den Empfang und die Beantwortung von HTTP anfragen von Kunden. Dies kann besonders hilfreich sein, um die webbasierte Kommunikation in Desktop-Programmen zu verwalten oder leichtgewichtige Online-Dienste aufzubauen.

Eine .NET-Bibliothek namens IronPDF wird zum Erstellen, Ändern und Extrahieren von Inhalten aus PDF-Dateien verwendet. Es bietet eine umfassende Palette von Funktionen für die Erstellung von PDFs aus HTML, die Umwandlung bereits vorhandener PDFs in verschiedene Formate und die Änderung von PDFs durch Programmierung.

Durch die Kombination von HttpListener und IronPDF können Entwickler Webdienste entwerfen, die als Reaktion auf HTTP-Anforderungen dynamisch PDF-Dokumente erzeugen und bereitstellen können. Für Anwendungen, die PDFs in Abhängigkeit von Benutzereingaben oder anderen dynamischen Daten in Echtzeit erzeugen müssen, ist dies äußerst hilfreich.

Was ist HttpListener C#?

HttpListener ist eine einfache, aber flexible Klasse im System.Net-Namespace des .NET-Frameworks, die es Entwicklern ermöglicht, unkomplizierte HTTP-Server in C# zu entwerfen. Seine Aufgabe ist es, eingehende HTTP-Anfragen von Kunden zu empfangen, sie zu verarbeiten und mit den richtigen Informationen zu beantworten. Diese Klasse eignet sich hervorragend für leichtgewichtige, eigenständige Webdienste oder für die Integration von webbasierten Kommunikationsfunktionen in Desktop-Programme, da sie keinen vollwertigen Webserver wie IIS erfordert.

HttpListener C# (Wie es funktioniert für Entwickler): Abbildung 1

Entwickler können URI-Präfixe festlegen, um zu bestimmen, welche Adressen der Server mithilfe von HttpListener abhören soll. Sobald der Listener gestartet ist, antwortet er auf alle eingehenden Anfragen und verwendet den HttpListenerContext, um den Zugriff auf Anfrage- und Antwortobjekte zu ermöglichen. Diese Konfiguration ermöglicht es, die Logik für die Bearbeitung von HTTP-Anfragen zu erstellen, die den Anforderungen der Anwendung entspricht. HttpListener's Benutzerfreundlichkeit und Anpassungsfähigkeit machen es besonders hilfreich in Situationen, die eine schnelle, effektive und konfigurierbare HTTP-Server. HttpListener bietet eine stabile Lösung ohne Overhead für die Entwicklung lokaler Server zum Testen, für das Prototyping von Online-Diensten oder für die Integration von Kommunikationsprotokollen in Desktop-Anwendungen.

Merkmale von HttpListener C#

Eine Reihe von Funktionen machen den HttpListener von C# zu einem effektiven Werkzeug für die Erstellung von HTTP-Servern. Zu den wesentlichen Elementen gehören:

Benutzerfreundlichkeit: HttpListener ist eine einfach zu verwendende Bibliothek, mit der Programmierer weniger Code schreiben müssen, um einen einfachen HTTP-Server einzurichten.

URI-Präfixe: Es können mehrere URI-Präfixe für das Abhören angegeben werden, was Flexibilität bei der Behandlung verschiedener Endpunkte bietet und gewährleistet, dass der Server nur auf relevante Anfragen reagiert.

Asynchrone Operationen: HttpListener unterstützt asynchrone Methoden, die die Skalierbarkeit und Reaktionsfähigkeit des Servers verbessern, indem sie es ermöglichen, zahlreiche Anfragen auf einmal effizient zu bearbeiten, ohne den Hauptthread zu unterbrechen.

Authentifizierung: Mit der Unterstützung von HttpListener für zahlreiche Authentifizierungstechniken wie Basic, Digest, NTLM und integrierte Windows-Authentifizierung können Sie Ihre Endpunkte nach Bedarf sichern.

HTTPS-Unterstützung: Der HttpListener kann so eingerichtet werden, dass er auf HTTPS-Anfragen reagiert, um beispielsweise eine sichere Client-Server-Datenkommunikation zu ermöglichen.

Request und Response Handling: HttpListener gibt Ihnen die vollständige Kontrolle über die Anfrage und Antwort-Prozess, indem Sie Antworten ändern, indem Sie neue Header, Status-Codes, und Content-Typen, und durch das Lesen von Anfrage Daten, Header und Parameter.

Listener-Konfiguration: HttpListener bietet listenerspezifische Konfigurationsoptionen zur Anpassung des Serververhaltens, z. B. für die Zertifikatsverwaltung (für HTTPS), Zeitüberschreitungen und andere Parameter.

Protokollierung und Diagnose: Ermöglicht die Protokollierung und Diagnose und liefert umfassende Informationen über Anfragen und Antworten, die die Überwachung und Fehlersuche erleichtern.

Kompatibilität: Ermöglicht eine reibungslose Integration mit aktuellen .NET-Diensten und -Anwendungen, da es mit anderen .NET-Komponenten und -Bibliotheken gut funktioniert.

Plattformübergreifend: HttpListener ist kompatibel mit Windows, Linux und macOS und ist mit .NET Core und .NET 5+ verfügbar, was plattformübergreifende Entwicklungsflexibilität bietet.

Erstellen und Konfigurieren von HttpListener C#;

Es gibt mehrere Schritte beim Erstellen und Konfigurieren eines HttpListener in C#. Eine ausführliche Anleitung zum Konfigurieren eines HttpListeners für die Bearbeitung von HTTP-Anfragen finden Sie weiter unten.

Erstellen eines neuen .NET-Projekts

Öffnen Sie die Eingabeaufforderung, die Konsole oder das Terminal.

Starten Sie die neu erstellte .NET-Konsolenanwendung durch Eingabe von

dotnet new console -n HttplistenerExample
cd HttplistenerExample
dotnet new console -n HttplistenerExample
cd HttplistenerExample
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Erstellen einer HttpListener-Instanz

Erstellen Sie zunächst eine Instanz der Klasse HttpListener.

Konfiguration von URI-Präfixen

Fügen Sie URI-Präfixe hinzu, um anzugeben, welche Adressen der Listener verarbeiten soll.

Start des Listeners

Starten Sie den HttpListener, damit er auf eingehende HTTP-Anforderungen wartet.

Eingehende Anfragen bearbeiten

Erstellen Sie eine Schleife, um eingehende Anfragen zu behandeln, zu verarbeiten und Antworten zu senden.

Stop the Listener

Beenden Sie den HttpListener ordnungsgemäß, wenn er nicht mehr benötigt wird.

Hier ist nur ein Beispiel für einen Antrag dieser Phasen in Aktion zu sehen:

using System;
using System.Net;
using System.Text;
class Program
{
    public static string url="http://localhost:8080/";
    public static HttpListener listener;
    public static void Main(string[] args)
    {
        // Step 1: Create an HttpListener instance
        listener = new HttpListener();
        // Step 2: Configure URI prefixes
        listener.Prefixes.Add(url);
        // Step 3: Start the listener
        listener.Start();
        Console.WriteLine("Listening for requests on "+url);
        // Step 4: Handle incoming requests
    // Wait for an incoming request
        while (true)
        {
            // getcontext method blocks
            HttpListenerContext context = listener.GetContext();
            HttpListenerRequest request = context.Request;
            // Process the request (e.g., log the request URL with or without query string)
            Console.WriteLine($"Received request for {request.Url}");
            // Create a response
            HttpListenerResponse response = context.Response;
        // add response info
            string responseString = "<html><body>Hello, world!</body></html>";
            byte[] buffer = Encoding.UTF8.GetBytes(responseString);
            // Set the content length and type
            response.ContentLength64 = buffer.Length;
            response.ContentType = "text/html";
            // Write the response to the output stream
            using (System.IO.Stream output = response.OutputStream)
            {
                output.Write(buffer, 0, buffer.Length);
            }
            // Close the response
            response.Close();
        }
        // Step 5: Stop the listener (this code is unreachable in the current loop structure)
        // listener.Stop();
    }
}
using System;
using System.Net;
using System.Text;
class Program
{
    public static string url="http://localhost:8080/";
    public static HttpListener listener;
    public static void Main(string[] args)
    {
        // Step 1: Create an HttpListener instance
        listener = new HttpListener();
        // Step 2: Configure URI prefixes
        listener.Prefixes.Add(url);
        // Step 3: Start the listener
        listener.Start();
        Console.WriteLine("Listening for requests on "+url);
        // Step 4: Handle incoming requests
    // Wait for an incoming request
        while (true)
        {
            // getcontext method blocks
            HttpListenerContext context = listener.GetContext();
            HttpListenerRequest request = context.Request;
            // Process the request (e.g., log the request URL with or without query string)
            Console.WriteLine($"Received request for {request.Url}");
            // Create a response
            HttpListenerResponse response = context.Response;
        // add response info
            string responseString = "<html><body>Hello, world!</body></html>";
            byte[] buffer = Encoding.UTF8.GetBytes(responseString);
            // Set the content length and type
            response.ContentLength64 = buffer.Length;
            response.ContentType = "text/html";
            // Write the response to the output stream
            using (System.IO.Stream output = response.OutputStream)
            {
                output.Write(buffer, 0, buffer.Length);
            }
            // Close the response
            response.Close();
        }
        // Step 5: Stop the listener (this code is unreachable in the current loop structure)
        // listener.Stop();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Der enthaltene C#-Code führt Sie durch den Prozess des Erstellens und Konfigurierens eines HttpListeners, der als einfacher HTTP-Server fungiert. Um die Adresse zu definieren, für die Anfragen verarbeitet werden sollen, wird zunächst ein HttpListener-Objekt instanziiert und ein URI-Präfix angehängt (http://localhost:8080/). Anschließend wird die Methode Start verwendet, um den Hörer zu starten. Wir verwenden eine unendliche while-Schleife, um ständig auf neue HTTP-Anfragen zu warten. GetContext wartet während der Schleife auf eine Anfrage und gibt dann ein HttpListenerContext-Objekt zurück, das die Anfrage- und Antwortobjekte enthält.

HttpListener C# (Wie es funktioniert für Entwickler): Abbildung 2

Nach der Protokollierung der Anfrage-URL wird ein einfaches HTML- und Antwort-Objekt erstellt, in ein Byte-Array umgewandelt und an den Antwort-Ausgabestrom gesendet. Bevor die Antwort an den Kunden zurückgesendet wird, werden der Typ und die Dauer der Antwort ordnungsgemäß angegeben. Die Schleife bedeutet, dass der Server nie aufhört, eine Anfrage nach der anderen zu bearbeiten. Die Halt-Methode müsste aufgerufen werden, um die Anfragekonsole des Hörers anzuhalten, aber in diesem Fall verhindert die Endlosschleife, dass sie erreicht wird.

HttpListener C# (So funktioniert es für Entwickler): Abbildung 3

Erste Schritte

IronPDF hilft Ihnen bei der Erstellung und Änderung hochwertiger PDFs in .NET, die Sie für die Erstellung von Dokumenten und Berichten benötigen. Mit der integrierten HTTP-Server-Funktion von HttpListener können Sie Webanfragen in kleinen Anwendungen oder Diensten verwalten. Beide Tools verbessern die Nützlichkeit und Geschwindigkeit von .NET-Anwendungen in ihren jeweiligen Bereichen. Um den C# HttpListener zu verwenden und ihn mit IronPDF zu integrieren, um PDFs zu erstellen, führen Sie die folgenden Schritte aus:

Was ist IronPDF?

Die funktionsreiche .NET-Bibliothek IronPDF ermöglicht es C#-Programmen, PDF-Dokumente zu erstellen, zu lesen und zu bearbeiten. Mit Hilfe dieses Dienstprogramms können Entwickler HTML-, CSS- und JavaScript-Material schnell in hochwertige und druckfertige PDF-Dateien umwandeln. Zu den wichtigsten Aufgaben gehören das Hinzufügen von Kopf- und Fußzeilen, das Aufteilen und Kombinieren von PDFs, das Hinzufügen von Wasserzeichen zu Dokumenten und die Konvertierung von HTML in PDF. IronPDF ist für eine Vielzahl von Anwendungen hilfreich, da es sowohl .NET-Framework als auch .NET Core unterstützt.

Da PDFs einfach zu verwenden sind und viele Informationen enthalten, können Entwickler sie leicht in ihre Produkte integrieren. Da IronPDF mit komplexen Datenlayouts und -formatierungen umgehen kann, sehen die PDF-Dateien, die es als Ausgabe erzeugt, dem Client oder dem ursprünglichen HTML-Text sehr ähnlich.

HttpListener C# (So funktioniert es für Entwickler): Abbildung 4

Merkmale von IronPDF

PDF-Erzeugung aus HTML

Konvertieren Sie JavaScript, HTML und CSS in PDF. IronPDF unterstützt Media-Queries und Responsive Design, zwei moderne Webstandards. Die Unterstützung moderner Webstandards ist nützlich, um PDF-Berichte, Rechnungen und Dokumente dynamisch mit HTML und CSS zu gestalten.

PDF-Bearbeitung

Vorhandene PDF-Dateien können mit Text, Bildern und anderen Inhalten versehen werden. Mit IronPDF können Entwickler Text und Bilder aus PDF-Dateien herausnehmen, mehrere PDFs in einer Datei kombinieren, PDF-Dateien in mehrere separate Dokumente aufteilen und Wasserzeichen, Anmerkungen, Kopf- und Fußzeilen in die PDF-Seiten einfügen.

PDF-Konvertierung

Konvertieren Sie verschiedene Dateiformate, darunter Word-, Excel- und Bilddateien, in PDF. IronPDF unterstützt auch die Konvertierung von PDF in Bilder (PNG, JPEG, usw.).

Leistung und Verlässlichkeit

Hohe Leistung und Zuverlässigkeit sind erwünschte Konstruktionsmerkmale in industriellen Umgebungen. Entwickler können große Dokumentensätze mühelos verwalten.

IronPDF installieren

Um die Werkzeuge zu erhalten, die Sie für die Arbeit mit PDFs in .NET-Projekten benötigen, installieren Sie das IronPDF-Paket.

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
VB   C#

HttpListener C# mit IronPDF integrieren

Dies ist ein umfassendes Beispiel, das Ihnen zeigt, wie Sie IronPDF zum Erstellen und Bereitstellen eines PDF-Dokuments verwenden und einen HttpListener einrichten:

using System;
using System.Net;
using System.Text;
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Step 1: Create an HttpListener instance
        HttpListener listener = new HttpListener();
        // Step 2: Configure URI prefixes
        listener.Prefixes.Add("http://localhost:8080/");
        // Step 3: Start the listener
        listener.Start();
        Console.WriteLine("Listening for requests on http://localhost:8080/");
        // Step 4: Handle incoming requests
        while (true)
        {
            // Wait for an incoming request
            HttpListenerContext context = listener.GetContext();
            HttpListenerRequest request = context.Request;
            // Process the request (e.g., log the request URL)
            Console.WriteLine($"Received request for {request.Url}");
            // Generate PDF using IronPDF
            var htmlContent = "<h1>PDF generated by IronPDF</h1><p>This is a sample PDF document.</p>";
            var pdf = IronPdf.HtmlToPdf.StaticRenderHtmlAsPdf(htmlContent);
            // Get the PDF as a byte array
            byte[] pdfBytes = pdf.BinaryData;
            // Create a response
            HttpListenerResponse response = context.Response;
            // Set the content length and type
            response.ContentLength64 = pdfBytes.Length;
            response.ContentType = "application/pdf";
            // Write the PDF to the response output stream
            using (System.IO.Stream output = response.OutputStream)
            {
                output.Write(pdfBytes, 0, pdfBytes.Length);
            }
            // Close the response
            response.Close();
        }
        // Step 5: Stop the listener (this code is unreachable in the current loop structure)
        // listener.Stop();
    }
}
using System;
using System.Net;
using System.Text;
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Step 1: Create an HttpListener instance
        HttpListener listener = new HttpListener();
        // Step 2: Configure URI prefixes
        listener.Prefixes.Add("http://localhost:8080/");
        // Step 3: Start the listener
        listener.Start();
        Console.WriteLine("Listening for requests on http://localhost:8080/");
        // Step 4: Handle incoming requests
        while (true)
        {
            // Wait for an incoming request
            HttpListenerContext context = listener.GetContext();
            HttpListenerRequest request = context.Request;
            // Process the request (e.g., log the request URL)
            Console.WriteLine($"Received request for {request.Url}");
            // Generate PDF using IronPDF
            var htmlContent = "<h1>PDF generated by IronPDF</h1><p>This is a sample PDF document.</p>";
            var pdf = IronPdf.HtmlToPdf.StaticRenderHtmlAsPdf(htmlContent);
            // Get the PDF as a byte array
            byte[] pdfBytes = pdf.BinaryData;
            // Create a response
            HttpListenerResponse response = context.Response;
            // Set the content length and type
            response.ContentLength64 = pdfBytes.Length;
            response.ContentType = "application/pdf";
            // Write the PDF to the response output stream
            using (System.IO.Stream output = response.OutputStream)
            {
                output.Write(pdfBytes, 0, pdfBytes.Length);
            }
            // Close the response
            response.Close();
        }
        // Step 5: Stop the listener (this code is unreachable in the current loop structure)
        // listener.Stop();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Der beigefügte C#-Code zeigt, wie man eine Verbindung herstellt IronPDF mit HttpListener, um dynamisch PDF-Dokumente zu erzeugen und zu liefern, und wie man ihn als einfachen HTTP-Methodenserver einrichtet. Der erste Schritt besteht darin, eine Instanz von HttpListener zu erstellen und sie so einzurichten, dass sie auf http://localhost:8080/ auf HTTP-Anforderungen wartet.

Nach dem Start des Listeners übernimmt eine Endlosschleife die Bearbeitung der eingehenden Anfragen. Der Code protokolliert die Anfrage-URL für jede Anfrage, verwendet IronPDF, um ein PDF-Dokument aus HTML-Text zu erstellen, und wandelt das PDF dann in ein Byte-Array um. Als nächstes wird die Antwort mit dem richtigen MIME-Typ eingerichtet (anwendung/pdf) und die Länge des Inhalts.

HttpListener C# (So funktioniert es für Entwickler): Abbildung 5

Der erste Antwortstrom wird geschlossen, um ihn an den Client zurückzusenden, nachdem das PDF-Byte-Array in den Antwortausgabestrom geschrieben wurde. Mit dieser Konfiguration kann der Server tatsächlich dynamisch erstellte PDF-Dokumente als Antwort auf HTTP-Anfragen zurückgeben.

HttpListener C# (So funktioniert es für Entwickler): Abbildung 6

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Verwendung von IronPDF in Verbindung mit dem C# HttpListener einen zuverlässigen Weg zur dynamischen Erstellung und Bereitstellung von PDF-Dateien über HTTP darstellt. Mit Hilfe von HttpListener können C#-Anwendungen leichtgewichtige HTTP-Server erstellen, die eingehende Anfragen bearbeiten und flexible Antwortgenerierung bieten können. Durch den Einsatz der dynamischen HTML-zu-PDF-Konvertierungsfunktion von IronPDF können Entwickler benutzerdefinierte oder datengesteuerte PDF-Berichte, Rechnungen oder andere Dokumente direkt aus der serverseitigen Logik erstellen.

Für Anwendungen, die die Erstellung und Bereitstellung von Dokumenten in Echtzeit über Webschnittstellen oder APIs erfordern, kann diese Kombination besonders nützlich sein. Entwickler können bestimmte Geschäftsanforderungen erfüllen, indem sie skalierbare und reaktionsschnelle Lösungen mit HttpListener und IronPDF implementieren. Diese Tools verbessern die Benutzerfreundlichkeit, indem sie die nahtlose Erstellung und Bereitstellung von Dokumenten über das Internet erleichtern.

Mit IronPDF for .NET können Sie Ihre Toolbox für die .NET-Entwicklung verbessern, indem Sie OCR verwenden, mit Barcodes arbeiten, PDFs erstellen, mit Excel verknüpfen und vieles mehr IronSoftware bietet Entwicklern größere Webanwendungen und -funktionen sowie eine effektivere Entwicklung zu einem Startpreis von 749 US-Dollar. Dies wird durch die Kombination der grundlegenden Basis mit der äußerst anpassungsfähigen Iron Software Suite und Technologien erreicht.

Die Wahl des besten Modells wird den Entwicklern erleichtert, indem die auf das Projekt zugeschnittenen Lizenzmöglichkeiten klar umrissen werden. Diese Vorteile ermöglichen es Entwicklern, Lösungen für eine Vielzahl von Problemen effektiv, zeitnah und koordiniert anzuwenden.

< PREVIOUS
Autofac C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
AutoFixture C# (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >