2012-09-28 5 views
8

Web APIを初めて使用しているため、クライアント用のサーバーを作成する必要があります。私はクライアントを支配していない - 事を変えることはできない。代替コンテンツタイプのC#web apiを使用する

クライアントは、POST本体でhtmlカプセル化json要求を送信します。ただし、コンテンツタイプはさまざまです。 ApiControllerがさまざまなコンテンツタイプを処理できるようにするには、何が必要ですか?

答えて

8

Web Apiは、コンテンツネゴシエーション HTTPリクエストのヘッダContent-Typeに基づいて正しいフォーマッタを自動的に選択するメカニズムをサポートしています。

デフォルトでは、コンテンツネゴシエーションでは、json,xmlおよびform-urlencoded dataの3つのフォーマッタがサポートされています。フォーマッタが見つからない場合、クライアントはHTTPエラー406(Not Acceptable)を受け取ります。

もっと見る:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation

は、Web APIのサポート別のContent-Typeを許可する必要がある場合は、独自のカスタムフォーマッタを書き込むことができます。

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/media-formatters

+1

感謝を。私はこれを使用して終了: 公共HttpResponseMessageポスト(HttpRequestMessage R) { } これは私が来て、私はその後、解析ができている生のXMLへのアクセスを得ることができました。私はそれが "正しい"方法ではないと確信しています - しかし、それは私のために働く – user789235

関連する問題