8

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

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

4

1 回答 1

8

在底层,Web Api 支持内容协商Content-Type机制,可以根据HTTP 请求中的标头自动选择正确的格式化程序。

默认情况下,内容协商支持三种格式化程序jsonxmlform-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

于 2012-09-28T16:23:06.313 回答