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

2020-11-13  本文已影响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指定的状态码

上一篇下一篇

猜你喜欢

热点阅读