Asp.Net WebAPI C# 中的内置消息处理器是什么?
csharpserver side programmingprogramming更新于 2025/9/6 20:07:17
消息处理器是一个接收 HTTP 请求并返回 HTTP 响应的类。消息处理器派生自抽象的 HttpMessageHandler 类。消息处理器使我们能够在传入请求到达 HttpControllerDispatcher 之前对其进行处理、编辑或拒绝。
消息处理器在请求处理管道中执行得更早,因此它们是在 Web API 中实现横切关注点的绝佳位置。消息处理器只不过是一个类链(可能是系统定义的,也可能是我们定义的),它位于管道中 HTTP 请求和响应处理过程的旁边。

例如,一个 HTTP 请求到达 HTTP 服务器,现在该请求将被传递给 HandlerA,在 HandlerA 处理之后,它可能会转到 HandlerB,依此类推。这样做的好处是,我们可以根据业务需求在每个处理程序中执行特定的任务。
在 ASP.NET Web API 框架中,有两种类型的消息处理程序可用。它们如下所示。
- 服务器端 HTTP 消息处理程序
- 客户端 HTTP 消息处理程序
服务器端消息处理程序
在服务器端,Web API 管道使用一些内置消息处理程序 −
- HttpServer 从主机获取请求。
- HttpRoutingDispatcher 根据路由调度请求。
- HttpControllerDispatcher 将请求发送到 Web API 控制器。
我们可以向管道添加自定义处理程序。消息处理程序非常适合在 HTTP 消息级别(而不是控制器操作)操作的横切关注点。例如,消息处理程序可能 −
- 读取或修改请求标头。
- 为响应添加响应标头。
- 在请求到达控制器之前对其进行验证。
客户端 HTTP 消息处理程序
在客户端,HttpClient 类使用消息处理程序来处理请求。默认处理程序是 HttpClientHandler,它通过网络发送请求,并从服务器获取响应。我们可以将自定义消息处理程序插入到客户端管道中。

