我正在使用 @RestController
s 的应用程序,其中所有请求都是 POST
请求...正如我从 this post 了解到的,您不能将单独的 post 参数映射到单独的方法参数,而是需要将所有参数包装在一个对象中,然后将此对象用作用 @RequestBody
注释的方法参数。因此
@RequestMapping(value="/requestotp",method = RequestMethod.POST)
public String requestOTP( @RequestParam(value="idNumber") String idNumber , @RequestParam(value="applicationId") String applicationId) {
return customerService.requestOTP(idNumber, applicationId);
不适用于
POST
正文请求 {"idNumber":"345","applicationId":"64536"}
我的问题是我有 很多 的
POST
requests ,每个只有一个或两个参数,创建所有这些对象只是为了接收内部的请求会很乏味......那么有没有其他类似于处理获取请求参数(URL参数)的方式的方法?
最佳答案
是的,有两种方法-
首先 - 您需要做的就是将这些参数附加到 url 中,无需在正文中提供它们。
url 将类似于 - baseurl+/requestotp?idNumber=123&applicationId=123
@RequestMapping(value="/requestotp",method = RequestMethod.POST)
public String requestOTP( @RequestParam(value="idNumber") String idNumber , @RequestParam(value="applicationId") String applicationId) {
return customerService.requestOTP(idNumber, applicationId);
第二-您可以按如下方式使用 map
@RequestMapping(value="/requestotp",method = RequestMethod.POST)
public String requestOTP( @RequestBody Map<String,Object> body) {
return customerService.requestOTP(body.get("idNumber").toString(), body.get("applicationId").toString());
关于spring - 可以通过@RequestBody 以外的方式spring map POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49670209/