Spring中ResponseEntity和HttpEntity有什么区别?

14
在Spring框架中,ResponseEntityHttpEntity有何区别?我想知道这两者之间的差异以及在Spring MVC控制器中何时使用它们。
3个回答

10

HttpEntity可以用于创建RequestEntity和ResponseEntity。

而ResponseEntity是从HttpEntity子类化而来的,它以一种更详细的方式发送ResponseObject,仅限于发送响应。 以下是一些关键差异:

  1. 在发送ResponseEntity Object时,ResponseEntity从HttpEntity继承了一个额外的HttpStatus Code。

  2. 它还具有ResponseEntity.BodyBuilder,可向响应对象添加正文,以及ResponseEntity.HeadersBuilder,可向响应对象添加头文件。


4

HttpEntity包装了请求和响应消息。但是ResponseEntity只包装响应消息。ResponseEntity基本上继承自HttpEntity。与其父类不同,ResponseEntity也可以具有HTTP状态代码。例如:

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


3

HTTP实体是HTTP请求或响应的大部分内容,包括一些头信息和主体(如果存在)。它似乎是请求或响应的整个内容,但不包括请求或状态行(尽管只有特定的头字段被认为是实体的一部分)。

而ResponseEntity旨在表示整个HTTP响应。您可以控制其中的任何内容:状态代码、头信息和主体。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接