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

向REST服务器POST JSON对象时持续报400错误,请求排查问题

排查POST请求返回400 Bad Request的常见问题

我来帮你一步步排查这个400错误的可能原因,结合AppSensor的addEvent接口来分析:

  • 请求体格式与字段合规性问题
    首先得确认你的JSON请求体完全匹配API定义的要求:

    • 检查必填字段是否齐全:比如detectionPoint.id、user.username这类核心字段是不是都正确填写了,有没有遗漏?
    • 校验字段类型与枚举值:比如timestamp必须是ISO 8601格式的字符串(像2024-05-20T12:00:00.000Z),severity只能是LOW/MEDIUM/HIGH三者之一,别写错大小写或者拼写。
    • 避免多余字段:有些API会严格校验请求体,多余的未知字段也可能触发400错误。
  • 请求头设置错误

    • 务必确保请求头里的Content-Type设为application/json,这是服务器正确解析JSON请求体的前提,如果设成其他类型(比如application/x-www-form-urlencoded),直接就会解析失败。
    • 检查是否需要认证信息:AppSensor接口可能要求携带Authorization头(比如API密钥或令牌),如果遗漏了,部分情况下也会返回400(当然通常是401,但不排除某些前置校验逻辑触发400)。
  • 请求URL路径是否准确
    核对你的请求URL是否和API文档里的addEvent接口路径一致,比如是不是/appsensor/rest/events?别出现多打斜杠、少写后缀这类低级错误。

  • JSON转义问题
    如果请求体里包含特殊字符(比如双引号、反斜杠),一定要正确转义。比如字符串中的双引号需要写成\",否则会破坏JSON结构,导致服务器解析失败返回400。

  • 用测试工具快速验证
    建议先用Postman或curl手动发送一个符合文档要求的示例请求,比如:

    {
      "detectionPoint": {
        "id": "TEST-1"
      },
      "user": {
        "username": "testUser"
      },
      "timestamp": "2024-05-20T12:00:00.000Z",
      "severity": "MEDIUM"
    }
    

    如果手动请求成功,说明问题出在你的代码里(比如JSON序列化错误、字符串拼接失误);如果手动请求也失败,那可能是服务器配置或权限方面的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:14:28