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

如何解决用Curl向Dropwizard发送带JSON体的POST请求报错问题

解决Dropwizard后端Curl POST JSON请求400错误的问题

你遇到的400错误根源很明确——你的Curl命令里的JSON请求体不符合标准JSON格式!

Postman之所以能成功,是因为它会自动处理格式细节,或者你在Postman里输入的本身就是合法JSON;但Curl会完全按照你写的内容发送请求,而JSON规范要求所有键名必须用双引号包裹,你写的label1、label2没有加双引号,Dropwizard依赖的Jackson序列化框架根本认不出这是合法的JSON,所以直接返回400 Bad Request。

给你修正后的Curl命令:

curl -v -X POST "localhost:8080/resource" -H "Content-Type: application/json" -d '{"label1": "words1", "label2": "words2"}'

就是把label1和label2都用双引号括起来,这样JSON格式就完全合规了,Jackson就能正确解析你的请求体。

另外提两个实用细节:

  • 如果你是在Linux/macOS的bash环境下,用单引号包裹整个JSON串是最省心的,不会有转义问题;但如果是Windows的cmd或者PowerShell环境,得调整引号转义,比如改成这样:
    curl -v -X POST "localhost:8080/resource" -H "Content-Type: application/json" -d "{\"label1\": \"words1\", \"label2\": \"words2\"}"
    
  • 要是以后再遇到类似问题,你可以直接用Postman生成正确的Curl命令:在Postman里完成请求后,点击右上角的「Code」按钮,选择Curl格式,直接复制过来用就行,百分百和你Postman里的请求一致。

内容的提问来源于stack exchange,提问作者A.Dumas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:59:14