gpt4 book ai didi

java - RequestMapping POST API 有问题吗?

转载 作者:行者123 更新时间:2023-12-01 21:41:55 25 4
gpt4 key购买 nike

我无法弄清楚我在这里做错了什么。我正在使用“Postman”应用程序向服务发送请求。该参数是一个非常简单的 POJO,如下所示。当我尝试发送请求时,我收到响应:“服务器拒绝了此请求,因为请求实体的格式不受所请求方法的请求资源支持”

用于请求的类:

 public class LoginAttempt {

private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

Controller 中的API:

@RequestMapping(value="/validate", method=RequestMethod.POST, produces="application/json") 
public boolean validateUser(@RequestBody LoginAttempt login) {
System.out.println("Login attempt for user " + login.getUserName() + login.getPassword());
return true;
}

最佳答案

FormHttpMessageConverter,当内容类型为 application/x-www-form-urlencoded 时,用于 @RequestBody 注释的参数,无法像 @ModelAttribute 那样绑定(bind)目标类。因此你需要 @ModelAttribute 而不是 @RequestBody

要么像这样使用@ModelAttribute注释而不是@RequestBody

     public boolean validateUser(@ModelAttribute LoginAttempt login) 

或者您可以使用适当的 headers 属性创建一个单独的方法来处理表单数据,如下所示:

    @RequestMapping(value="/validate", method=RequestMethod.POST, headers = "content-type=application/x-www-form-urlencoded" produces="application/json")

关于java - RequestMapping POST API 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36348438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com