Spring中ResponseEntity和HttpEntity的区别是什么?

时间:2017-03-16 09:21:02

标签: java spring

我想知道两者之间的区别以及何时在SpringMVC控制器中使用它们。

BR,

3 个答案:

答案 0 :(得分:5)

HttpEntity可用于创建RequestEntity和ResponseEntity。

当ResponseEntity从HttpEntity子类化时,使用更精细的方式发送ResponseObject,它仅限于发送Response。 一些主要差异如下:

  1. 在发送ResponseEntity对象时,从HttpEntity继承的ResponseEntity具有额外的HttpStatus代码。

  2. 它还有ResponseEntity.BodyBuilder,它将body添加到响应Object和ResponseEntity.HeadersBuilder,它将标头添加到Response对象。

答案 1 :(得分:2)

HTTP实体是HTTP请求或响应的主要部分,包括一些标头和正文(如果存在)。它似乎是没有请求或状态行的整个请求或响应(尽管只有某些头字段被认为是实体的一部分)。

而ResponseEntity旨在表示整个HTTP响应。您可以控制进入它的任何内容:状态代码,标题和正文。

答案 2 :(得分:1)

HttpEntity包含请求和响应消息。但ResponseEntity仅包含响应消息。 ResponseEntity基本上继承自HttpEntity。响应实体也可以具有与其父类不同的HTTP状态代码。 例如:

new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);