【问题标题】:Content-Type - WebAPI - Request Header内容类型 - WebAPI - 请求标头
【发布时间】:2014-11-03 23:59:53
【问题描述】:

WEBAPI 控制器是否可以返回 JSON,即使标头“Content-Type”不存在?

在默认设置中,当标头不存在时,会引发异常“No MediaTypeFormatter is available to read an object of type ...”。

【问题讨论】:

    标签: c# asp.net .net json asp.net-web-api


    【解决方案1】:

    将此添加到您的WebApiConfig.cs

    config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html") );
    

    现在您会得到 json 结果,除非您将 text/xml 作为“Content-Type”发送

    【讨论】:

    • 为我工作 :) 而不是 text/html 我遇到了 application/octet-stream 的问题
    【解决方案2】:

    通常 web api 可以返回 xml 格式和 json 格式,因此在调用 web api 时需要在 header 中指定内容类型。

    【讨论】:

      【解决方案3】:

      这样做是可能的。只需将默认序列化程序更改为Json Serializer。更多细节解释here

      注意:WebApi 的默认序列化程序是Json Serializer。因此,即使在请求中没有找到内容类型标头,您也应该以json 格式获得响应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-07
        • 2013-09-09
        • 2016-01-01
        • 2021-07-30
        • 2018-12-03
        • 1970-01-01
        • 2021-12-08
        • 2015-07-19
        相关资源
        最近更新 更多