ASP.Net Web API C# 中的内置消息处理程序是什么?
消息处理程序是一个接收 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,它通过网络发送请求并从服务器获取响应。我们可以将自定义消息处理程序插入客户端管道。
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP