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

创建Restful API时POST请求返回400错误的排查求助

ASP.NET Core POST接口400 Bad Request排查方案

以下是针对你遇到问题的具体排查方向和解决建议:

  • 检查Content-Length是否匹配实际请求体大小
    你的请求中手动设置Content-Length: 19,但实际请求体的JSON包含换行和空格,UTF-8编码下实际字节数远大于19。错误的Content-Length会导致服务器解析JSON时截断内容,直接引发400错误。
    解决建议:要么去掉手动设置的Content-Length,让HTTP客户端自动计算;要么准确计算JSON的实际字节数。你可以先使用压缩后的JSON测试:

    {"id":12345}
    
  • 统一模型序列化属性
    你同时使用了Newtonsoft.Json的[JsonProperty("id")]和System.Text.Json的[JsonPropertyName("id")]属性,虽然两者共存一般不会直接报错,但如果项目仅启用了其中一种序列化器,可能导致字段映射异常。
    解决建议:根据项目配置保留对应属性。如果使用ASP.NET Core默认的System.Text.Json,只保留[JsonPropertyName("id")];如果配置了Newtonsoft.Json作为序列化器,则只保留[JsonProperty("id")]。

  • 排查请求体中的隐藏字符
    部分情况下,JSON字符串可能包含不可见的空白字符(如全角空格、零宽字符),导致服务器无法正常解析。建议使用无格式的紧凑JSON测试,避免换行和多余空格。

  • 启用详细错误日志定位问题
    默认的400响应仅返回基础错误信息,你可以在appsettings.json中开启调试日志:

    {
      "Logging": {
        "LogLevel": {
          "Microsoft.AspNetCore": "Debug"
        }
      }
    }
    

    查看控制台或日志文件,会显示具体的解析错误(如JSON截断、字段不匹配等),快速定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:17:38