使用带有备用内容类型的c#web api

use*_*235 8 c# content-type asp.net-web-api

我是web api的新手,我需要为客户端创建一个服务器.我无法控制客户端 - 无法改变一件事.

客户端在POST主体中发送html封装的json请求.但是,内容类型可能会有所不同.我需要做什么才能让我的ApiController处理不同的内容类型?

cuo*_*gle 8

在引擎盖下,Web Api支持内容协商机制,以根据Content-TypeHTTP请求中的标头自动选择正确的格式化程序.

默认情况下,内容协商支持三种格式化:json,xmlform-urlencoded data.如果未找到格式化程序,则客户端将收到HTTP错误406(不可接受).

看更多:

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