为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过springboot发送400/500/404响应错误

如何通过springboot发送400/500/404响应错误

万千封印 2023-10-13 16:24:04
@PutMapping("/createUser")public String createUser(@RequestBody User user) {    User thisValue = repository.findByUsername(user.getUsername());    if thisValue != null {        sendResponseHeaders(400, -1); // wont work        return "account exist";    }    sendResponseHeaders(200, -1); // wont work    return "reached here";}我之前使用的 com.sun.httpserver 有一个 sendResponseheaders 方法,但我在 springboot 上找不到它。有什么办法可以实现这一点吗?基本上就是我想要的。如果我发送带有存在的用户名的 json 请求正文,则应发生 400 响应错误
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您可以使用org.springframework.http.ResponseEntity.


<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-web</artifactId>

    <version>x.x.x.RELEASE</version>

</dependency>

像这样。


@PutMapping("/createUser")

public ResponseEntity createUser(@RequestBody User user) {

    User thisValue = repository.findByUsername(user.getUsername());

    if (thisValue != null) {

        return ResponseEntity.badRequest().build();

    }

    return ResponseEntity.ok().build();

}


查看完整回答
反对 回复 2023-10-13
?
LEATH

TA贡献1936条经验 获得超6个赞

除了返回显式 之外ResponseEntity,您还可以抛出在类级别用 注释的异常(或允许异常转义)@ResponseStatus。默认的 Spring MVC 配置将拦截来自控制器方法的任何异常,如果没有注释,则返回 HTTP 500(一般“服务器错误”);如果有,则返回指定的状态。



查看完整回答
反对 回复 2023-10-13
?
catspeake

TA贡献1111条经验 获得超0个赞

在普通控制器中:


@PutMapping("/createUser")

public ModelAndView createUser(@RequestBody User user) {

    ModelAndView mv= new ModelAndView("reached-here");

    User thisValue = repository.findByUsername(user.getUsername());

    if (thisValue != null) {

        model.setStatus(HttpStatus.BAD_REQUEST);

        model.setValueName("account-exist");

    }else{

        model.setStatus(HttpStatus.OK);

    }

    return mv;

}

在 REST 控制器中:


@PutMapping("/createUser")

public ResponseEntity<String> createUser(@RequestBody User user) {

    User thisValue = repository.findByUsername(user.getUsername());

    if (thisValue != null) {

        return new ResponseEntity<String>("account-exist", HttpStatus.BAD_REQUEST);

    }else{

        return new ResponseEntity<String>("reached here", HttpStatus.OK);

    }

}


查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信