在Spring框架中,
ResponseEntity
和HttpEntity
有何区别?我想知道这两者之间的差异以及在Spring MVC控制器中何时使用它们。HttpEntity可以用于创建RequestEntity和ResponseEntity。
而ResponseEntity是从HttpEntity子类化而来的,它以一种更详细的方式发送ResponseObject,仅限于发送响应。 以下是一些关键差异:
在发送ResponseEntity Object时,ResponseEntity从HttpEntity继承了一个额外的HttpStatus Code。
它还具有ResponseEntity.BodyBuilder,可向响应对象添加正文,以及ResponseEntity.HeadersBuilder,可向响应对象添加头文件。
HttpEntity包装了请求和响应消息。但是ResponseEntity只包装响应消息。ResponseEntity基本上继承自HttpEntity。与其父类不同,ResponseEntity也可以具有HTTP状态代码。例如:
new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
HTTP实体是HTTP请求或响应的大部分内容,包括一些头信息和主体(如果存在)。它似乎是请求或响应的整个内容,但不包括请求或状态行(尽管只有特定的头字段被认为是实体的一部分)。
而ResponseEntity旨在表示整个HTTP响应。您可以控制其中的任何内容:状态代码、头信息和主体。