406调用C#Web API中的POST方法时的HTTP响应

本文关键字:HTTP 响应 方法 POST 调用 C#Web API 中的 | 更新日期: 2023-09-27 18:29:23

每次使用Fiddler发出POST请求时,都会引发UnsupportedMediaTypeException。我是不是错过了什么?

控制器:

    [Route("api/contacts")]
    public IHttpActionResult Post([FromBody]ContactDTO contact)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
        //Other operations
        return Created(contact);
    }

WebApiConfig.cs

    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        // Web API routes
        config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(
            new MediaTypeHeaderValue("application/json"));
        var json = config.Formatters.JsonFormatter;
        json.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
        json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    }

Fiddler请求

406调用C#Web API中的POST方法时的HTTP响应

在深入研究我的代码后,我注意到了一些东西。我的控制器类继承自ODataController。我刚刚将继承更改为ApiController,现在一切都很好。