【问题标题】:Spring, Angular.js 400 Bad RequestSpring,Angular.js 400 错误请求
【发布时间】:2021-08-08 11:40:56
【问题描述】:

我很难弄清楚为什么这个请求会遇到 400 BAD 请求:

{
email: "ccc@gmail.com"
lastfmUsername: "bluecun"
password: "$2a$10$if246VMeosRCNJibodEhueXGyQNiAHeJd3KVHi7WedjByECYeXO5."
username: "bluecun"
}

这是我的模型和控制器代码:

public class User {
    private Long id;
    private String username;
    private String lastfmUsername;
    private String email;
    private String password;
...
}

@RequestMapping(value = "/register", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public
    @ResponseBody
    void register(@RequestBody User user) throws Exception {
        semanticGraphDao.saveUser(user);
    }

感谢您的回答。

【问题讨论】:

    标签: angularjs spring rest http-status-code-400


    【解决方案1】:

    首先你需要检查你的JSON是否格式正确,这意味着:用引号括起来的属性和每个属性之间的冒号,例如:

    {
      "email": "ccc@gmail.com",
      "lastfmUsername": "bluecun",
      "password": "$2a$10$if246VMeosRCNJibodEhueXGyQNiAHeJd3KVHi7WedjByECYeXO5.",
      "username": "bluecun"
    }
    

    最重要的是,检查您的 User 类的构造函数。它必须有一个默认构造函数:

    public class User {
        private Long id;
        private String username;
        private String lastfmUsername;
        private String email;
        private String password;
    
        public User() {
          
        }
        
        // Getters and Setters
    }
    

    最后,检查 Spring 启动日志 - 可能它显示了 Jackson 的某种异常,它将指导您如何解决映射问题。

    【讨论】:

    • 这是因为我没有默认构造函数。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多