异常:使用Spring post方法时org.springframework.web.HttpRequestMethodNotSupportedException

时间:2018-08-25 06:58:12

标签: java spring post request

我有以下代码在我的控制器中映射post API。我已经为POST请求参数定义了一个模型。

public class CreateUserBody {
    String CandidateId = "";
    String EmployeeId = "";
    String CompanyId = "";

    public String getCandidateId() {
        return CandidateId;
    }
    public String getEmployeeId() {
        return EmployeeId;
    }
    public String getCompanyId() {
        return CompanyId;
    }
}

当我触发此API时,我收到HttpRequestMethodNotSupportedException。请帮助我解决这个问题。

  @RequestMapping(value = "/SetEmployeeIdOneByOne/", method = RequestMethod.POST)
    public @ResponseBody void SetEmployeeIdOneByOne(@RequestBody CreateUserBody createUserBody) throws Exception{
        String CandidateId = createUserBody.getCandidateId();
        String EmployeeId = createUserBody.getEmployeeId();
        String CompanyId = createUserBody.getCompanyId();
        SetEmployeeID.SetEmployeeIDOneByOneInteger(CandidateId, EmployeeId, CompanyId);
    }

我正在调用API,就像...

enter image description here

2 个答案:

答案 0 :(得分:2)

与其将数据放入form-data中,而是将数据发布到raw中,然后将内容类型选择为application/json。正文中的数据应如下所示:

{
  "CandidateId":"3",
  "EmployeeId":"5696969",
  "CompanyId":"15272"
}

,您在邮递员中请求的网址应如下所示:

http://localhost:9199/SetEmployeeIdOneByOne/

答案 1 :(得分:0)

除了Sudhir answer之外,请尝试用以下方式注释您的控制器:

@RestController
@RequestMapping("/ats-api")
class MyController {
    @PostMapping("/set-employee-id-one-by-one")
    public void(@RequestBody CreateUserBody createUserBody) {
        ...
    }

在路径中使用CamelCase是不常见的,请考虑改用kebab-case