Package org.springframework.http

# Class ResponseEntity<T>

java.lang.Object
org.springframework.http.HttpEntity<T>
org.springframework.http.ResponseEntity<T>

Type Parameters:
  `T` - the body type

public class ResponseEntity<T> extends HttpEntity<T>
Extension of `HttpEntity` that adds an `HttpStatusCode` status code. Used in `RestTemplate` as well as in `@Controller` methods.

In `RestTemplate`, this class is returned by `getForEntity()` and `exchange()`:

     ResponseEntity<String> entity = template.getForEntity("https://example.com", String.class);
     String body = entity.getBody();
     MediaType contentType = entity.getHeaders().getContentType();
     HttpStatus statusCode = entity.getStatusCode();

This can also be used in Spring MVC as the return value from an `@Controller` method:

     @RequestMapping("/handle")
     public ResponseEntity<String> handle() {
       URI location = ...;
       HttpHeaders responseHeaders = new HttpHeaders();
       responseHeaders.setLocation(location);
       responseHeaders.set("MyResponseHeader", "MyValue");
       return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
     }

Or, by using a builder accessible via static methods:

     @RequestMapping("/handle")
     public ResponseEntity<String> handle() {
       URI location = ...;
       return ResponseEntity.created(location).header("MyResponseHeader", "MyValue").body("Hello World");
     }

Since:
  3.0.2
Author:
  Arjen Poutsma, Brian Clozel, Sebastien Deleuze
See Also:
  - `getStatusCode()`
  - `RestOperations.getForEntity(String, Class, Object...)`
  - `RestOperations.getForEntity(String, Class, java.util.Map)`
  - `RestOperations.getForEntity(URI, Class)`
  - `RequestEntity`

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static interface`
`ResponseEntity.BodyBuilder`
Defines a builder that adds a body to the response entity.
`static interface`
`ResponseEntity.HeadersBuilder<B extends ResponseEntity.HeadersBuilder<B>>`
Defines a builder that adds headers to the response entity.

## Field Summary

### Fields inherited from class org.springframework.http.HttpEntity

`EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`ResponseEntity(HttpStatusCode status)`
Create a `ResponseEntity` with a status code only.
`ResponseEntity(org.springframework.util.MultiValueMap<String,String> headers, HttpStatusCode status)`
Create a `ResponseEntity` with headers and a status code.
`ResponseEntity(T body, HttpStatusCode status)`
Create a `ResponseEntity` with a body and status code.
`ResponseEntity(T body, org.springframework.util.MultiValueMap<String,String> headers, int rawStatus)`
Create a `ResponseEntity` with a body, headers, and a raw status code.
`ResponseEntity(T body, org.springframework.util.MultiValueMap<String,String> headers, HttpStatusCode statusCode)`
Create a `ResponseEntity` with a body, headers, and a status code.

## Method Summary

Modifier and Type
Method
Description
`static ResponseEntity.BodyBuilder`
`accepted()`
Create a builder with an ACCEPTED status.
`static ResponseEntity.BodyBuilder`
`badRequest()`
Create a builder with a BAD_REQUEST status.
`static ResponseEntity.BodyBuilder`
`created(URI location)`
Create a new builder with a CREATED status and a location header set to the given URI.
`boolean`
`equals(Object other)`
`HttpStatusCode`
`getStatusCode()`
Return the HTTP status code of the response.
`int`
`getStatusCodeValue()`
Deprecated.
as of 6.0, in favor of `getStatusCode()`; scheduled for removal in 7.0
`int`
`hashCode()`
`static ResponseEntity.BodyBuilder`
`internalServerError()`
Create a builder with an INTERNAL_SERVER_ERROR status.
`static ResponseEntity.HeadersBuilder<?>`
`noContent()`
Create a builder with a NO_CONTENT status.
`static ResponseEntity.HeadersBuilder<?>`
`notFound()`
Create a builder with a NOT_FOUND status.
`static <T> ResponseEntity<T>`
`of(Optional<T> body)`
A shortcut for creating a `ResponseEntity` with the given body and the OK status, or an empty body and a NOT FOUND status in case of an Optional.empty() parameter.
`static ResponseEntity.HeadersBuilder<?>`
`of(ProblemDetail body)`
Create a new `ResponseEntity.HeadersBuilder` with its status set to `ProblemDetail.getStatus()` and its body is set to `ProblemDetail`.
`static <T> ResponseEntity<T>`
`ofNullable(T body)`
A shortcut for creating a `ResponseEntity` with the given body and the OK status, or an empty body and a NOT FOUND status in case of a `null` parameter.
`static ResponseEntity.BodyBuilder`
`ok()`
Create a builder with the status set to OK.
`static <T> ResponseEntity<T>`
`ok(T body)`
A shortcut for creating a `ResponseEntity` with the given body and the status set to OK.
`static ResponseEntity.BodyBuilder`
`status(int status)`
Create a builder with the given status.
`static ResponseEntity.BodyBuilder`
`status(HttpStatusCode status)`
Create a builder with the given status.
`String`
`toString()`
`static ResponseEntity.BodyBuilder`
`unprocessableEntity()`
Create a builder with an UNPROCESSABLE_ENTITY status.

### Methods inherited from class org.springframework.http.HttpEntity

`getBody, getHeaders, hasBody`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### ResponseEntity

public ResponseEntity(HttpStatusCode status)
Create a `ResponseEntity` with a status code only.

Parameters:
  `status` - the status code

### ResponseEntity

public ResponseEntity(@Nullable T body, HttpStatusCode status)
Create a `ResponseEntity` with a body and status code.

Parameters:
  `body` - the entity body
  `status` - the status code

### ResponseEntity

public ResponseEntity(org.springframework.util.MultiValueMap<String,String> headers, HttpStatusCode status)
Create a `ResponseEntity` with headers and a status code.

Parameters:
  `headers` - the entity headers
  `status` - the status code

### ResponseEntity

public ResponseEntity(@Nullable T body, @Nullable org.springframework.util.MultiValueMap<String,String> headers, int rawStatus)
Create a `ResponseEntity` with a body, headers, and a raw status code.

Parameters:
  `body` - the entity body
  `headers` - the entity headers
  `rawStatus` - the status code value
Since:
  5.3.2

### ResponseEntity

public ResponseEntity(@Nullable T body, @Nullable org.springframework.util.MultiValueMap<String,String> headers, HttpStatusCode statusCode)
Create a `ResponseEntity` with a body, headers, and a status code.

Parameters:
  `body` - the entity body
  `headers` - the entity headers
  `statusCode` - the status code

## Method Details

### getStatusCode

public HttpStatusCode getStatusCode()
Return the HTTP status code of the response.

Returns:
  the HTTP status as an HttpStatus enum entry

### getStatusCodeValue

@Deprecated(since="6.0") public int getStatusCodeValue()
Deprecated.
as of 6.0, in favor of `getStatusCode()`; scheduled for removal in 7.0
Return the HTTP status code of the response.

Returns:
  the HTTP status as an int value
Since:
  4.3

### equals

public boolean equals(@Nullable Object other)

Overrides:
  `equals` in class `HttpEntity<T>`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `HttpEntity<T>`

### toString

public String toString()

Overrides:
  `toString` in class `HttpEntity<T>`

### status

public static ResponseEntity.BodyBuilder status(HttpStatusCode status)
Create a builder with the given status.

Parameters:
  `status` - the response status
Returns:
  the created builder
Since:
  4.1

### status

public static ResponseEntity.BodyBuilder status(int status)
Create a builder with the given status.

Parameters:
  `status` - the response status
Returns:
  the created builder
Since:
  4.1

### ok

public static ResponseEntity.BodyBuilder ok()
Create a builder with the status set to OK.

Returns:
  the created builder
Since:
  4.1

### ok

public static <T> ResponseEntity<T> ok(@Nullable T body)
A shortcut for creating a `ResponseEntity` with the given body and the status set to OK.

Parameters:
  `body` - the body of the response entity (possibly empty)
Returns:
  the created `ResponseEntity`
Since:
  4.1

### of

public static <T> ResponseEntity<T> of(Optional<T> body)
A shortcut for creating a `ResponseEntity` with the given body and the OK status, or an empty body and a NOT FOUND status in case of an Optional.empty() parameter.

Returns:
  the created `ResponseEntity`
Since:
  5.1

### of

public static ResponseEntity.HeadersBuilder<?> of(ProblemDetail body)
Create a new `ResponseEntity.HeadersBuilder` with its status set to `ProblemDetail.getStatus()` and its body is set to `ProblemDetail`.

Note: If there are no headers to add, there is usually no need to create a `ResponseEntity` since `ProblemDetail` is also supported as a return value from controller methods.

Parameters:
  `body` - the problem detail to use
Returns:
  the created builder
Since:
  6.0

### ofNullable

public static <T> ResponseEntity<T> ofNullable(@Nullable T body)
A shortcut for creating a `ResponseEntity` with the given body and the OK status, or an empty body and a NOT FOUND status in case of a `null` parameter.

Returns:
  the created `ResponseEntity`
Since:
  6.0.5

### created

public static ResponseEntity.BodyBuilder created(URI location)
Create a new builder with a CREATED status and a location header set to the given URI.

Parameters:
  `location` - the location URI
Returns:
  the created builder
Since:
  4.1

### accepted

public static ResponseEntity.BodyBuilder accepted()
Create a builder with an ACCEPTED status.

Returns:
  the created builder
Since:
  4.1

### noContent

public static ResponseEntity.HeadersBuilder<?> noContent()
Create a builder with a NO_CONTENT status.

Returns:
  the created builder
Since:
  4.1

### badRequest

public static ResponseEntity.BodyBuilder badRequest()
Create a builder with a BAD_REQUEST status.

Returns:
  the created builder
Since:
  4.1

### notFound

public static ResponseEntity.HeadersBuilder<?> notFound()
Create a builder with a NOT_FOUND status.

Returns:
  the created builder
Since:
  4.1

### unprocessableEntity

public static ResponseEntity.BodyBuilder unprocessableEntity()
Create a builder with an UNPROCESSABLE_ENTITY status.

Returns:
  the created builder
Since:
  4.1.3

### internalServerError

public static ResponseEntity.BodyBuilder internalServerError()
Create a builder with an INTERNAL_SERVER_ERROR status.

Returns:
  the created builder
Since:
  5.3.8