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,它透過網路傳送請求並從伺服器獲取響應。我們可以將自定義訊息處理程式插入客戶端管道。
廣告