HTTP POST中的ASP.Net核心供应商特定Mime类型

时间:2017-12-20 21:15:21

标签: c# asp.net-core

为了使模型绑定器正确绑定ASP.Net Core中HTTP请求的正文部分,您需要使用[FromBody]属性。

public JsonResult PostContent([FromBody] Content content)
{
    ......
}

如果您的媒体类型为application/json,则效果很好。但是,如果您想在application/vnd+mycompany+json标头中使用特定于供应商(例如Accept)的媒体类型,那么如果我在HTTP POST中传递该媒体类型,我将获得415 Unsupported Media Type

所以我的问题是你如何在ASP.Net Core中支持特定于供应商的媒体类型?

1 个答案:

答案 0 :(得分:0)

这就是我做到的。

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<IApiInfoService, ApiInfoService>();
    services.AddTransient<IApiVersion, ApiVersion>();
    services.AddTransient<IContentService, ContentService>();
    services.AddTransient<IIdGenerator, GuidIdGenerator>();

    // Add framework services.
    services.AddMvc(
        mvcConfig => {
            mvcConfig.InputFormatters.OfType<JsonInputFormatter>().First().SupportedMediaTypes.Add(
                MediaTypeHeaderValue.Parse(ContentTypes.VENDOR_MIME_TYPE)
            );
        }
    );
}