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

SpringBoot REST API发POST请求返回415 Unsupported Media Type错误如何解决

问题解决

报错核心原因

  • 请求头参数缺少-H标识:你写的"Content-Type: application/json"前面没有加-H参数前缀,curl会把这段内容识别为请求URL的一部分,导致端口解析错误,同时服务端没有收到正确的Content-Type请求头,因此返回415不支持媒体类型错误。
  • Windows CMD的引号规则和Linux shell不同:CMD不支持单引号包裹字符串,同时JSON内部的双引号需要用反斜杠转义,否则CMD会把JSON内部的双引号识别为参数边界,把JSON内容拆成多个独立参数,就会出现"无法解析主机Magnus"这类报错。

正确的CMD下curl命令

curl -X POST -H "Content-Type: application/json" http://localhost:8080/players -d "{\"firstName\": \"Magnus\", \"lastName\": \"Carlsen\", \"email\": \"magnuscarlsen@gmail.com\"}"

额外注意:Controller代码存在隐藏问题

你的updatePlayer方法中有两处笔误,会导致更新功能异常:

  1. 连续调用了两次setFirstName,lastName无法正确更新
// 错误写法
currentPlayer.setFirstName(player.getFirstName());
currentPlayer.setFirstName(player.getLastName());
// 修正为
currentPlayer.setFirstName(player.getFirstName());
currentPlayer.setLastName(player.getLastName());
  1. 保存时用了传入的player对象而非修改后的currentPlayer,会导致修改不生效
// 错误写法
currentPlayer = playerRepository.save(player);
// 修正为
currentPlayer = playerRepository.save(currentPlayer);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:06:05