Обработчик сообщений для фильтрации сетевых запросов – C#

Использование обработчиков сообщений – типичная практика разработки программного обеспечения. Обработчики сообщений используются для перехвата и обработки сообщений в конвейерном режиме. В этой статье мы создадим собственные обработчики сообщений, которые фильтруют сетевые запросы и отключают нежелательные. Вы найдете простые примеры C# того, как применять обработчики сообщений для сетевых операций.

Сетевые запросы – Network Requests

В разработке программного обеспечения сетевые запросы относятся к клиентскому приложению, отправляющему запрос серверу по сети и получающему ответ от сервера. Обработчики сообщений – это мощный способ перехвата и обработки сетевых запросов и ответов.

Обработчик сообщений для фильтрации сетевых запросов

Библиотека Aspose.HTML for .NET предоставляет функциональные возможности, которые могут быть полезны в сценариях, когда вы хотите ограничить определенные типы сетевых запросов в приложении обработки HTML. Например, если вы работаете с HTML-документами и хотите, чтобы из внешних источников загружались только определенные типы ресурсов. Для этого следует создать обработчик сообщений, который будет отфильтровать нежелательные сетевые запросы.

Давайте рассмотрим фрагмент кода C#, который использует библиотеку Aspose.HTML for .NET для работы с HTML-документами и сетевыми операциями. Этот код устанавливает NetworkDisabledMessageHandler, который пропускает только запросы с протоколами file:, base64: и about:. Если запрос использует любой другой протокол, обработчик его блокирует.

 1// Define the NetworkDisabledMessageHandler class that is derived from the MessageHandler class
 2public class NetworkDisabledMessageHandler : MessageHandler
 3{
 4    // Override the Invoke() method
 5    public override void Invoke(INetworkOperationContext context)
 6    {
 7        if (context.Request.RequestUri.Protocol == "file:" ||
 8            context.Request.RequestUri.Protocol == "base64:" ||
 9            context.Request.RequestUri.Protocol == "about:")
10            Next(context);
11    }
12}

Приведенный выше фрагмент кода C# создает обработчик сообщений для настройки поведения сетевых запросов на основе их протоколов:

NetworkDisabledMessageHandler полезен для случаев, когда требуется работать с HTML-документами в среде с ограниченным доступом к сети или когда определённые сетевые ресурсы недоступны или нежелательны. Это может быть необходимо:

Как отфильтровать нежелательные сетевые запросы

Вот пример того, как вы можете использовать класс NetworkDisabledMessageHandler для фильтрации нежелательных сетевых запросов:

  1. Создайте экземпляр класса Configuration с помощью конструктора Configuration().
  2. Вызовите метод GetService<INetworkService>() объекта конфигурации, чтобы получить экземпляр интерфейса INetworkService.
  3. Используйте метод Insert(), чтобы добавить обработчик сообщения в начало существующей цепочки обработчиков сообщений. Это означает, что любые сетевые запросы, сделанные через INetworkService, сначала будут проходить через NetworkDisabledMessageHandler.
  4. Создайте экземпляр класса HTMLDocument, передав ему путь к HTML-файлу и объект конфигурации.
 1// Create an instance of the Configuration class
 2using var configuration = new Configuration();
 3
 4// Call the INetworkService which contains the functionality for managing network operations
 5var network = configuration.GetService<INetworkService>();
 6
 7// Add the TimeoutMessageHandler to the top of existing message handler chain
 8network.MessageHandlers.Insert(0, new NetworkDisabledMessageHandler());                
 9
10// Prepare path to a source document file
11string documentPath = Path.Combine(DataDir, "document.html");
12
13// Create an HTML document with a custom configuration
14using var document = new HTMLDocument(documentPath, configuration);

Вы можете скачать полные примеры и файлы данных с GitHub..

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.