什么是消息处理程序?
Message Handler 基本上派生自抽象类即HttpMessageHandler类,它也是Message Handler 的基类。它可以定义为接收 HTTP 请求并返回 HTTP 响应的类。举个例子——假设一个 HTTP 服务器接收到一个 HTTP 请求,现在这个请求将被转移到 Handler A,然后在 Handler A 处理它之后,它转到 Handler B 并继续该过程。因此,它根据需要在每个处理程序中执行特定的给定任务。但是,消息处理程序通常是一系列类,它们以一系列方式链接在一起,例如 -
第一个消息处理程序接收一个 HTTP 请求,然后执行一些处理。之后将请求发送给下一个消息处理程序。一段时间后,在某个特定点,响应被创建并返回到链中。所有这些处理模式都称为“委托处理程序”。
为什么使用消息处理程序?
消息处理程序有多种用途,例如:
- 它帮助我们在 HTTP 请求和响应中高效地执行操作。
- 它也可以在客户端使用。
- 根据需要,它有助于在每个处理程序中执行特定任务。
- 它提供了检查 XML/JSON 请求和响应内容的工具。
- 它还使我们能够在必要时更改 XML/JSON 请求或响应的内容。
以下是一些类型的消息处理程序。它们如下:
- 服务器端消息处理程序:服务器端消息处理程序是 Web API 管道使用一些内置消息处理程序的地方,这些消息处理程序已由 MVC Web API 框架设置。这些是 - HttpServer、HttpRoutingDispatcher、HttpControlDispatcher。所以服务器端消息处理程序基本上是预定义的,基本上在服务器端提供读取 HTTP 请求和响应。
- 自定义消息处理程序:自定义消息处理程序基本上派生自 System.Net.Http.DelegatingHandler,它覆盖了 SendAsync 方法。这里的方法将输入作为一个HttpRequestMessage,然后异步返回一个HttpResponseMessage。
- Per-Route 消息处理程序:使用 Per-Route 消息处理程序,如果您只想为某些路由启用一些基本身份验证,那么只需在此路由本身中配置此 per-route 消息处理程序即可,一切就绪去。
有几个程序被用作消息处理程序,并使用相同的接口和一个包含多个容器的通道来调用。容器进一步分为以下类型:
1. 控制容器:控制容器仅对流水线操作是必不可少的。它基本上执行修改消息处理程序处理顺序的任务。
2. 上下文容器:上下文容器用于消息处理程序需要有关如何调用它们的上下文的信息的某些情况。我们还可以更改上下文容器保存的消息处理程序中的信息。
3. 用户容器;用户容器基本上保存了一个消息处理程序需要传递给另一个消息处理程序的信息。