You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 8 Web API接收JSON时返回415不支持的媒体类型

解决ASP.NET Core 8 Web API POST端点415 Unsupported Media Type错误

以下是几种常见的排查和解决方法:

1. 确认模型绑定配置

ASP.NET Core 8默认自带JSON格式化支持,但如果手动修改过项目配置,需检查Program.cs中是否保留了控制器服务的默认配置:

var builder = WebApplication.CreateBuilder(args);

// 确保添加控制器服务,默认包含JSON格式化逻辑
builder.Services.AddControllers();

var app = builder.Build();

app.MapControllers();

app.Run();

如果自定义了格式化器,别不小心移除了JSON相关配置。

2. 检查端点参数与模型

  • 必须给POST端点的参数加上[FromBody]特性,明确告诉框架从请求体绑定JSON数据:
[HttpPost]
public IActionResult Post([FromBody] YourModel model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    return Ok(model);
}
  • 验证你的YourModel类:属性要有公共的getter和setter,避免用私有构造函数(除非专门配置序列化器支持),不要包含无法序列化的类型。

3. 核对Postman请求细节

  • 确认请求头的Content-Type确实是application/json,别拼写错误(比如写成application/javascript这类错误值),带charset=utf-8后缀是允许的。
  • 检查请求体的JSON格式是否合法,比如有没有遗漏逗号、引号不匹配等语法问题,可借助在线JSON校验工具确认。

4. 排查序列化器冲突

如果项目用了第三方序列化器(比如用Newtonsoft.Json替代默认的System.Text.Json),要正确配置:
在Program.cs中添加:

builder.Services.AddControllers().AddNewtonsoftJson();

同时确保Postman的请求格式和序列化器兼容。

5. 确认路由匹配

检查Postman请求的URL和端点路由完全一致,比如端点路由是[HttpPost("api/data")],请求URL就得是http://localhost:xxxx/api/data,路由不匹配也可能间接引发这类错误。

内容的提问来源于stack exchange,提问作者mostafa said

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 12:42:03