C#
 Computer >> コンピューター >  >> プログラミング >> C#

Asp.Net webAPI C#に組み込まれているメッセージハンドラーとは何ですか?


メッセージハンドラは、HTTPリクエストを受信し、HTTPレスポンスを返すクラスです。メッセージハンドラーは、抽象HttpMessageHandlerクラスから派生します。メッセージハンドラーは、着信要求がHttpControllerDispatcherに到達する前に、処理、編集、または拒否する機会を提供します。

メッセージハンドラは、リクエスト処理パイプラインのかなり早い段階で実行されるため、WebAPIで横断的関心事を実装するのに最適な場所です。 MessageHandlerは、パイプラインを介したHTTPリクエストとレスポンスのプロセスの隣にあるクラスのチェーン(システムで定義されているか、usによって定義されている場合があります)にすぎません。

Asp.Net webAPI C#に組み込まれているメッセージハンドラーとは何ですか?

たとえば、1つのHTTPリクエストがHTTPサーバーに送信された場合、リクエストはHandlerAに渡され、HandlerAで処理された後、HandlerBなどに渡される可能性があります。ここでの利点は、ビジネスニーズに応じて各ハンドラー内で特定のタスクを実行できることです。

ASP.NET Web APIフレームワークでは、2種類のメッセージハンドラーを使用できます。以下のとおりです。

  • サーバー側のHTTPメッセージハンドラー
  • クライアント側のHTTPメッセージハンドラー

サーバー側のメッセージハンドラー

サーバー側では、WebAPIパイプラインはいくつかの組み込みメッセージハンドラーを使用します-

  • HttpServer ホストからリクエストを取得します。
  • HttpRoutingDispatcher ルートに基づいてリクエストをディスパッチします。
  • HttpControllerDispatcher リクエストをWebAPIコントローラーに送信します。

パイプラインにカスタムハンドラーを追加できます。メッセージハンドラーは、(コントローラーアクションではなく)HTTPメッセージのレベルで動作する問題を横断するのに適しています。たとえば、メッセージハンドラは-

  • リクエストヘッダーを読んだり変更したりします。
  • 応答ヘッダーを応答に追加します。
  • リクエストがコントローラーに到達する前に検証します。

クライアント側のHTTPメッセージハンドラー

クライアント側では、 HttpClient クラスはメッセージハンドラを使用してリクエストを処理します。デフォルトのハンドラーはHttpClientHandler 、ネットワーク経由でリクエストを送信し、サーバーからレスポンスを取得します。カスタムメッセージハンドラーをクライアントパイプラインに挿入できます。


  1. C#ASP.NET WebAPIのさまざまな種類のフィルターは何ですか?

    フィルタは、WebApiFrameworkリク​​エスト処理のさまざまなレベルで追加のロジックを挿入するために使用されます。フィルタは、横断的関心事(ロギング、承認、およびキャッシング)の方法を提供します。フィルタは、宣言的またはプログラム的な方法でアクションメソッドまたはコントローラに適用できます。以下は、Web API C#のフィルターの種類です。 認証フィルター − 認証フィルターは、ユーザーの詳細を認証するのに役立ちます。認証フィルターでは、ユーザーの信頼性をチェックするためのロジックを記述します。 認証フィルター − 承認フィルターは、ユーザーアクセスのチェックを担当しま

  2. C#ASP.NET WebAPIでのコントローラーアクションのさまざまな戻り値の種類は何ですか?

    Web APIアクションメソッドは、次のリターンタイプを持つことができます。 ボイド プリミティブ型/複合型 HttpResponseMessage IHttpActionResult 無効 − すべてのアクションメソッドが何かを返す必要はありません。ボイドリターンタイプにすることができます。 例 using DemoWebApplication.Models using System.Web.Http; namespace DemoWebApplication.Controllers{    public class DemoCont