【问题标题】:Using c# web api with alternate content-type使用带有备用内容类型的 c# web api
【发布时间】:2012-09-20 12:36:45
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net-web-api content-type


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我最终使用了这个: public HttpResponseMessage Post(HttpRequestMessage r) { } 这让我可以访问原始 xml,然后我可以解析。我确定这不是“正确”的方式 - 但它对我有用
    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 2014-06-17
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多