Spring应用程序返回HTTP 415不支持的媒体类型

jdzmm42g  于 2023-01-12  发布在  Spring
关注(0)|答案(3)|浏览(252)

我正在制作SpringMVC网页应用程序。我有一个控制器:

@RestController
@RequestMapping(value ="/certificate", produces = MediaType.APPLICATION_JSON_VALUE)
public class GiftCertificateController {
    private final GiftCertificateService gcs;
    
    @Autowired
    public GiftCertificateController(GiftCertificateService gcs) {
        this.gcs = gcs;
    }
    
    @PostMapping
    public ResponseEntity<?> createCertificate(@RequestBody GiftCertificate gc) throws Exception {
        gcs.createCertificate(gc);
        return new ResponseEntity<>(Map.of("status", HttpStatus.CREATED), HttpStatus.CREATED);
    }
    
    // some GetMapping and DeleteMapping functions
    // omitted for simplicity
}

我尝试在Postman中进行POST,以使用JSON创建证书:

{
    "name": "sas",
    "description": "sasasas",
    "price": 12,
    "duration": 12
}

我尝试将我的内容类型更改为application/json,但仍然不起作用。

kupeojn6

kupeojn61#

您的控制器没有处理该请求。HTTP 415表示“不支持的媒体类型”。
HTTP 415不支持的媒体类型客户端错误响应代码表示服务器拒绝接受请求,因为负载格式不受支持。
格式问题可能是由于请求指示的内容类型或内容编码,或者是直接检查数据的结果。
尝试将值为"application/json"的**头"Content-Type"**添加到 Postman 请求中。
Stack Overflow中的搜索引擎非常强大。以下问题可能也会提供有用的信息:

rkttyhzu

rkttyhzu2#

错误415-不支持的文件格式错误发生时,服务器拒绝接受请求,因为有效负载格式是在一个不支持的格式的文件类型。
1.确保发送正确的Content-Type头值。
2.验证服务器是否能够处理在Content-Type标头中定义的值。
3.检查Accept标头以验证服务器实际上愿意处理的内容。

  • 要解决此问题,请将请求标头下的内容类型显式设置为Post
  • 确保将正文**“文本”更改为“JSON”**
oyt4ldly

oyt4ldly3#

即使在将Content-type更改为application/JSON之后,我也遇到了这个问题

  • 为了解决这个问题,我创建了一个DTO来从JSON文件获取输入
  • 然后通过DTO将这些值传递给实体对象

相关问题