美文网首页
后端返回状态码的几种方式

后端返回状态码的几种方式

作者: 一只有思想的小蚂蚁 | 来源:发表于2020-11-13 17:42 被阅读0次

    前端调用后端接口时,需要关注接口返回的状态码,由状态码来判断请求是否成功。
    比如,500是服务器端的错误,404可能是请求路径找不到。
    后端返回状态码有以下几种方式:
    1.使用spring ResponseEntity
    ResponseEntity是通用类型,因此可以使用任意类型作为响应体。

    @GetMapping("/helloworld")
    ResponseEntity<String> hello() {
        return new ResponseEntity<>("Hello World!", HttpStatus.OK);
    }
    

    ResponseEntity包含状态码、头部信息以及相应体内容。
    还可以为其设置响应头

    @GetMapping("/header")
    ResponseEntity<String> setHeader() {
        HttpHeaders headers = new HttpHeaders();
        headers.add("grant_type", "authorization_code");
    
        return new ResponseEntity<>(
          "header set", headers, HttpStatus.OK);
    }
    

    ResponseEntity还提供了两个内嵌的构建器接口: HeadersBuilder 和其子接口 BodyBuilder。因此我们能通过ResponseEntity的静态方法直接访问。

    ResponseEntity.BodyBuilder ok();
    ResponseEntity.BodyBuilder created(URI location);
    ResponseEntity.BodyBuilder accepted();
    ResponseEntity.HeadersBuilder<?> noContent();
    ResponseEntity.BodyBuilder badRequest();
    ResponseEntity.HeadersBuilder<?> notFound();

    @GetMapping("/helloworld")
    ResponseEntity<String> hello() {
        return ResponseEntity.ok("Hello World!");
    }
    

    2.使用HttpServletResponse
    HttpServletResponse对象它可以看程是服务器的响应。
    这个对象中封装了向客户端发送数据、发送响应头、发送状态码的方法。
    可以使用HttpServletResponse向前端返回响应状态码

    public void hello(HttpServletResponse response){
         response.setStatus(204);
    }
    

    3.使用@ResponseStatus()注解
    @ResponseStatus可以改变HTTP响应的状态码,

    @RequestMapping("/hello")
    @ResponseStatus(HttpStatus.CREATED)
    public void hello(HttpServletResponse response){
        //业务代码
    }
    

    使用@ResponseStatus,在处理方法正确执行的前提下,后台返回HTTP响应的状态码为@ResponseStatus指定的状态码

    相关文章

      网友评论

          本文标题:后端返回状态码的几种方式

          本文链接:https://www.haomeiwen.com/subject/wakbbktx.html