Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
В традиционных вызовах клиент-сервер клиент отправляет веб-запрос на сервер, ждет результата, а затем получает ответ. Существуют обработчики сообщений как на стороне сервера, так и на стороне клиента, и иногда вам необходимо настроить собственные обработчики сообщений. В этой статье мы рассмотрим концепцию обработчика сообщений и создадим собственный обработчик сообщений для выполнения конкретной задачи.
По определению обработчик сообщений – это класс, который получает веб-запрос и возвращает ответ. Другими словами, обработчик сообщений используется для обработки запроса веб-службы во время ввода и/или для обработки ответа во время вывода. Цепочка обработчиков – это конвейер, каждый из которых имеет возможность обработать исходящий веб-запрос до его отправки или обработать веб-ответ.
Поведение обработчиков регулируется набором протоколов, описывающих, какие действия обработчики сообщений могут выполнять в данной ситуации. Обработчики, их протоколы и их место в цепочке могут определяться системой или пользователем.
Людям нравится настройка, и иногда им нужно выполнить собственную логику в запросе и ответе. Вы можете добавить собственные обработчики в конвейер. У каждого обработчика есть выбор действий, которые он может выполнить. Например, обработчик можно вызвать только для обработки запроса или только для обработки ответа.
Можно создать один или несколько настраиваемых обработчиков сообщений и организовать их в цепочку обработчиков сообщений, которые вызываются при каждом запросе и ответе. Каждый веб-запрос проходит через конвейер обработчиков сообщений, и мы можем создавать собственные обработчики сообщений и расширять поведение существующего конвейера. Графически результат выглядит примерно так:

Обработчик сообщений может немедленно вернуть ответ. Например, вы можете создать обработчик, который проверяет наличие заголовка в исходящих запросах. Если заголовок отсутствует, он не передает запрос следующему обработчику и генерирует ответ об ошибке, который возвращается вызывающей стороне.

Вы можете определить цепочку обработчиков как конвейер, который сможет обрабатывать исходящие веб-запросы перед их отправкой. Например, эти обработчики могут проверять тело запроса или регистрировать некоторую информацию о запросе. Рассмотрим пример создания обработчика сообщений, чтобы показать ключевые понятия.
Aspose.HTML for .NET предлагает функциональные возможности для создания пользовательских обработчиков сообщений. Давайте разработаем простой пользовательский обработчик, который выводит сообщение при запуске и завершении запроса. Выполните следующие действия:
1using Aspose.Html.Net;
2...
3
4 public class LogMessageHandler : MessageHandler
5 {
6
7 }Итак, вы определили свой собственный класс LogMessageHandler, теперь вам нужно проделать в нем какую-то операцию. 3. Переопределите метод Invoke() класса MessageHandler для реализации пользовательского поведения обработчика сообщений.
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}В следующем фрагменте кода показано, как добавить LogMessageHandler в конвейер и использовать его для простой операции.
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);Итак, в этой статье вы получили представление о пользовательском обработчике сообщений и увидели простой пример его реализации.
В статье Популярные варианты использования обработчиков сообщений вы узнаете, как создавать обработчики сообщений для реализации пользовательского схемы, работать с ZIP-архивом и вести журнал времени выполнения веб-запроса.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.