常用的ResponseEntity.BodyBuilder和自定义ResponseEntity的实例
ResponseEntity.ok() 和 ResponseEntity.BodyBuilder()
返回200(HttpStatus.SC_OK)
@RequestMapping("/check")
public ResponseEntity<String> check() {
BodyBuilder builder = (BodyBuilder) ResponseEntity.ok();
builder.allow(HttpMethod.GET);
builder.contentType(MediaType.TEXT_HTML);
builder.eTag("W/MyeTag\"");
return builder.body("Hello World!");
}ResponseEntity.status()
使用HttpStatus返回需要的HttpCode
@RequestMapping("/handle")
public ResponseEntity<String> handle() {
return ResponseEntity.status(HttpStatus.SC_CREATED).body("Created Success");
}ResponseEntity.created()
返回201(HttpStatus.SC_CREATED)
@RequestMapping("/handle")
public ResponseEntity<Void> handle() {
URI location = null;
try {
location = new URI("http://www.concretepage.com/");
} catch (URISyntaxException e) {
e.printStackTrace();
}
return ResponseEntity.created(location).build();
} ResponseEntity.accepted()
返回202(HttpStatus.SC_ACCEPTED)
@RequestMapping("/handle")
public ResponseEntity<String> handle() {
return ResponseEntity.accepted().body("Hello World!");
} ResponseEntity.noContent()
返回204(HttpStatus.SC_NO_CONTENT)
@RequestMapping("/handle")
public ResponseEntity<Void> handle() {
return ResponseEntity.noContent().build();
} ResponseEntity.badRequest()
返回400(HttpStatus.SC_BAD_REQUEST)
@RequestMapping("/handle")
public ResponseEntity<String> handle() {
return ResponseEntity.badRequest().body("Bad Request");
} ResponseEntity.notFound()
返回404(HttpStatus.SC_NOT_FOUND)
@RequestMapping("/handle")
public ResponseEntity<Void> handle() {
return ResponseEntity.notFound().build();
} ResponseEntity和ResponseBody的区别
1.ResponseEntity的优先级高于@ResponseBody。在不是ResponseEntity的情况下才去检查有没有@ResponseBody注解。如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系。
2.ResponseEntity 是在 org.springframework.http.HttpEntity 的基础上添加了http status code(http状态码),用于RestTemplate以及@Controller的HandlerMethod。它在Controoler中或者用于服务端响应时,作用是和@ResponseStatus与@ResponseBody结合起来的功能一样的。用于RestTemplate时,它是接收服务端返回的http status code 和 reason的。
简单直接的讲:
- @ResponseBody可以直接返回Json结果
- @ResponseEntity不仅可以返回json结果,还可以定义返回的HttpHeaders和HttpStatus
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java使用httpRequest+Jsoup爬取红蓝球号码
本文将结合实例代码,介绍Java使用httpRequest+Jsoup爬取红蓝球号码,需要的朋友们下面随着小编来一起学习学习吧2021-07-07
基于Mybatis-Plus拦截器实现MySQL数据加解密的示例代码
用户的一些敏感数据,例如手机号、邮箱、身份证等信息,在数据库以明文存储时会存在数据泄露的风险,因此需要进行加密,解密等功能,接下来本文就给大家介绍基于Mybatis-Plus拦截器实现MySQL数据加解密,需要的朋友可以参考下2023-07-07


最新评论