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 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告