Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Bei herkömmlichen Client-Server-Aufrufen sendet der Client eine Webanfrage an den Server, wartet auf das Ergebnis und erhält dann eine Antwort. Es gibt sowohl serverseitige als auch clientseitige Message-Handler, und manchmal müssen Sie benutzerdefinierte Message-Handler konfigurieren. In diesem Artikel befassen wir uns mit dem Konzept des Message Handlers und erstellen einen benutzerdefinierten Message Handler, der eine bestimmte Aufgabe erfüllt.
Definitionsgemäß ist ein Nachrichten-Handler eine Klasse, die eine Web-Anfrage empfängt und eine Antwort zurückgibt. Mit anderen Worten, ein Message-Handler wird verwendet, um eine Web-Service-Anfrage während der Eingabe und/oder die Antwort während der Ausgabe zu verarbeiten. Die Kette der Handler ist eine Pipeline, die alle die Möglichkeit haben, eine ausgehende Web-Anfrage zu verarbeiten, bevor sie gesendet wird, oder eine Web-Antwort zu verarbeiten.
Das Verhalten der Handler wird durch eine Reihe von Protokollen geregelt, die beschreiben, welche Maßnahmen die Nachrichtenhandler in einer bestimmten Situation ergreifen können. Die Handler, ihre Protokolle und ihr Platz in der Kette können von einem System oder einem Benutzer definiert werden.
Menschen mögen Anpassungen, und manchmal müssen sie eine benutzerdefinierte Logik in einer Anfrage und Antwort ausführen. Sie können der Pipeline benutzerdefinierte Handler hinzufügen. Jeder Handler hat eine Auswahl an Aktionen, die er ausführen kann. Der Handler kann zum Beispiel nur für die Verarbeitung von Anfragen oder nur für die Verarbeitung von Antworten aufgerufen werden.
Es können ein oder mehrere benutzerdefinierte Message-Handler erstellt und in einer Kette von Message-Handlern organisiert werden, die bei jeder Anforderung und Antwort aufgerufen werden. Jede Webanforderung durchläuft eine Message-Handler-Pipeline, und wir können benutzerdefinierte Message-Handler erstellen und das Verhalten einer bestehenden Pipeline erweitern. Grafisch sieht das Ergebnis etwa so aus:

Ein Message-Handler kann sofort eine Antwort zurückgeben. Sie könnten z. B. einen Handler erstellen, der prüft, ob bei ausgehenden Anfragen eine Kopfzeile vorhanden ist. Fehlt der Header, wird die Anforderung nicht an den nächsten Handler weitergeleitet und eine Fehlerantwort erzeugt, die an den Aufrufer zurückgegeben wird.

Sie können die Handler-Kette als eine Pipeline definieren, die in der Lage ist, die ausgehende Web-Anforderung zu verarbeiten, bevor sie gesendet wird. Diese Handler können z.B. den Body der Anforderung prüfen oder einige Informationen über die Anforderung protokollieren. Betrachten Sie ein Beispiel für die Erstellung eines Message-Handlers, um die wichtigsten Konzepte zu verdeutlichen.
Aspose.HTML for .NET bietet Funktionen für die Erstellung von benutzerdefinierten Nachrichten-Handlern. Lassen Sie uns einen einfachen benutzerdefinierten Handler entwickeln, der eine Nachricht ausgibt, wenn eine Anfrage beginnt und endet. Führen Sie die folgenden Schritte aus:
Verwenden Sie den erforderlichen Namespace, nämlich Aspose.Html.Net. Dieser Namespace wird durch Klassen und Schnittstellen dargestellt, die für eine einfache Netzwerkverarbeitung verantwortlich sind.
Um einen benutzerdefinierten Message Handler zu erstellen, müssen Sie Ihre eigene Klasse definieren, die von der Klasse MessageHandler abgeleitet wird. Die Klasse MessageHandler stellt einen Basistyp für Message-Handler dar.
1using Aspose.Html.Net;
2...
3
4 public class LogMessageHandler : MessageHandler
5 {
6
7 }Sie haben also Ihre eigene LogMessageHandler-Klasse definiert, nun müssen Sie einige Operationen darin durchführen.
1// Implement a message handler that prints a message about starting and finishing processing request
2
3public class LogMessageHandler : MessageHandler
4{
5 // Override the Invoke() method
6 public override void Invoke(INetworkOperationContext context)
7 {
8 Debug.WriteLine("Start processing request: " + context.Request.RequestUri);
9
10 // Invoke the next message handler in the chain
11 Next(context);
12
13 Debug.WriteLine("Finish processing request: " + context.Request.RequestUri);
14 }
15}Der folgende Codeausschnitt veranschaulicht, wie Sie den LogMessageHandler zur Pipeline hinzufügen und für einen einfachen Vorgang verwenden.
1// Log network requests for HTML processing in C#
2
3// Create an instance of the Configuration class
4using Configuration configuration = new Configuration();
5
6// Add the LogMessageHandler to the chain of existing message handlers
7INetworkService service = configuration.GetService<INetworkService>();
8MessageHandlerCollection handlers = service.MessageHandlers;
9
10handlers.Insert(0, new LogMessageHandler());
11
12// Prepare path to a source document file
13string documentPath = Path.Combine(DataDir, "input.htm");
14
15// Initialize an HTML document with specified configuration
16using HTMLDocument document = new HTMLDocument(documentPath, configuration);In diesem Artikel haben Sie also die Idee hinter dem benutzerdefinierten Message Handler kennengelernt und ein einfaches Beispiel für seine Implementierung gesehen.
Im Artikel Beliebte Anwendungsfälle für Nachrichten-Handler erfahren Sie, wie Sie Nachrichten-Handler erstellen, um ein benutzerdefiniertes Schema zu implementieren, mit einem ZIP-Archiv zu arbeiten und die Ausführungszeit einer Webanfrage zu protokollieren.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.