如何使用Spring正确接收urlencoded表单主体

我刚刚开始使用Spring,并且试图在rest控制器中接收一个采用表单编码的POST正文,但是我一生都无法使其正常工作。这是我的“ Hello

World”式控制器:

@RestController

public class MyController {

@ResponseBody

@RequestMapping(

value = "/",

method = RequestMethod.POST,

consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,

produces = MediaType.TEXT_PLAIN_VALUE

)

public String index(@RequestBody String text) {

return "Text: " + text;

}

}

我尝试了许多不同的变体,但都带有不同的错误。当从邮递员收到带有“文本”参数的POST请求时,上面的特定配置会产生以下错误。

Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.String com.mywebsite.controllers.MyController.index(java.lang.String)

* 产生一个空的地图,类似于上面的地图。

还有更多我找不到的东西,对于大多数这些帖子,我都尝试过每次都对注释进行调整。当我尝试GET和JSON

POST请求时,我取得了巨大的成功,但是由于某种原因,这些经过编码的请求拒绝工作。

回答:

如果要查询各个发布参数,只需使用RequestParam:

public String index(@RequestParam("text") String text) {

return "Text: " + text;

}

如果要一次获取多个参数,请创建一个Command类,其JavaBean属性与参数匹配:

public class Command {

private String text;

private Integer number;

public String getText() {

return text;

}

public void setText(String text) {

this.text = text;

}

public Integer getNumber() {

return number;

}

public void setNumber(Integer number) {

this.number = number;

}

}

并将其作为参数传递给您的方法:

public String index(Command command) {

return "Text: " + command.getText();

}

以上是 如何使用Spring正确接收urlencoded表单主体 的全部内容, 来源链接: utcz.com/qa/408825.html

回到顶部