Rest API不支持请求方法GET

时间:2018-07-16 14:53:29

标签: java rest spring-boot model-view-controller

我正在与其余api一起进行java springboot项目,我需要在uri之一中传递参数,使用此参数时会出现“请求方法GET不支持”错误

  //@GetMapping("logs/date?from={from}&to={to}")
  @RequestMapping(value="logs/date?from={from}&to={to}",method=RequestMethod.Get)
  public list getLogs(@RequestParam(value="from") String from,@RequestParam("to") String to)){....}

当我使用

时,它可以正常工作
  @RequestMapping(value="logs/date/from={from}&to={to}",method=RequestMethod.Get)
   public list getLogs(@PathVariable(value="from") String from,@PathVariable("to") String to)){....}

但是我需要该网址包含“?”在传递参数之前,所以当我替换

  @RequestMapping(value="logs/date/from={from}&to={to}",method=RequestMethod.Get)

与此

  @RequestMapping(value="logs/date?from={from}&to={to}",method=RequestMethod.Get)

我得到了GET方法不受支持的错误。

2 个答案:

答案 0 :(得分:3)

您编写RequestMapping值的方式不正确。您无需在from={from}&to={to}字段中写value。正确的方法如下:

@RequestMapping(value="/logs/date",method=RequestMethod.GET) public String getLogs(@RequestParam(value="from") String from,@RequestParam("to") String to)){....}

现在您可以使用URL进行API调用

http://localhost:8080/log/date?from=fromText&to=toText

答案 1 :(得分:2)

这不是您应该采取的方式。

对于@PathVariable,您可以这样做,但对于请求参数,应从前端本身定义。

因此不要在控制器或后端中执行此操作。