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,它通过网络发送请求并从服务器获取响应。我们可以将自定义消息处理程序插入客户端管道。

更新于:2020-09-24

634 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.