首页 > 解决方案 > Spring GET/POST 方法缺少 Content-Type

问题描述

我是新手Spring,我正在尝试做基础GETPOST方法。

这就是我尝试执行这些方法的方式:

@RestController
public class DeskController {

    @Autowired
    private DeskDao dao;

    @GetMapping("desks")
    public List<Desk> getDesks() {
        System.out.println(dao.findById(1L));
        return dao.findAll();
    }

    @PostMapping("desks")
    public Desk save(@RequestBody @Valid Desk desk) {
        Desk deskObj = dao.save(desk);
        System.out.println(deskObj);
        return deskObj;
    }

当我调用这样的POST方法时,我得到了pring我调用它的实际对象,所以它工作正常,但我也得到这个错误:

javax.ws.rs.ProcessingException: Content-Type is missing

当试图调用它时,GET它告诉我:

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported

我知道我没有包含整个代码,但我将添加解决此错误所需的内容,因为有很多类。

我的问题是,我该怎么做?error为什么GET不支持方法?

标签: javaspring

解决方案


你需要改变两件事:

  1. 使用 a/表示您将针对此路径执行操作。例如: ( /desks)
  2. 使用注解@Consumes指示此方法接受特定格式的有效负载。例如:在您的方法上进行@Consumes(MediaType.APPLICATION_JSON)注释。save()

推荐阅读