コンテンツ ネゴシエーションは、特定のコンテンツに最適な表現を選択するプロセスです 複数の表現が利用可能な場合の応答。意味、~に依存する リクエストのヘッダー値が受け入れられ、サーバーは応答を送信します。初め HTTP でのコンテンツ ネゴシエーションのメカニズムは、これらの要求ヘッダー (
Accept) です。応答に受け入れられるメディア タイプ (「application/json」、「application/xml」、またはカスタム メディア タイプ (例: "application/vnd.example xml")
Accept-Charset - どの文字セットが受け入れられるか (例: UTF-8 または ISO 8859-1) .
Accept-Encoding - どのコンテンツ エンコーディングが受け入れられるか (gzip など)。
Accept-Language - 「en-us」などの自然なエンコード言語を優先します。
サーバーは、HTTP リクエストの他の部分を調べることもできます。たとえば、次の場合 リクエストには、AJAX リクエストを示す X-Requested-With ヘッダーとサーバーが含まれています。 Accept ヘッダーがない場合は、デフォルトで JSON が使用される可能性があります。
コンテンツ ネゴシエーションでは、パイプラインは次から始まります。 HttpConfiguration オブジェクト。また、メディア フォーマッタのリストも取得します。 HttpConfiguration.Formatters コレクション。
次に、パイプラインは IContentNegotiator.Negotiate を呼び出し、-
using DemoWebApplication.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class StudentController : ApiController{ List<Student> students = new List<Student>{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; } }
Accept: application/xml returns XML Accept: application/json returns JSON
#性能指数を指定することもできます。以下の例では、xml の方が高品質です。 ファクターは json よりも重要であるため、サーバーは XML フォーマッタを使用してデータを XML にフォーマットします。 application/xml;q=0.8,application/json;q=0.5
以上がAsp.Net WebAPI C# のコンテンツ ネゴシエーションとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。