Package org.springframework.mock.web

# Class MockHttpServletResponse

java.lang.Object
org.springframework.mock.web.MockHttpServletResponse

All Implemented Interfaces:
  `HttpServletResponse`, `ServletResponse`

public class MockHttpServletResponse extends Object implements HttpServletResponse
Mock implementation of the `HttpServletResponse` interface.

As of Spring 6.0, this set of mocks is designed on a Servlet 6.0 baseline.

Since:
  1.0.2
Author:
  Juergen Hoeller, Rod Johnson, Brian Clozel, Vedran Pavic, Sebastien Deleuze, Sam Brannen

## Field Summary

### Fields inherited from interface jakarta.servlet.http.HttpServletResponse

`SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY`

## Constructor Summary

Constructors
Constructor
Description
`MockHttpServletResponse()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addCookie(Cookie cookie)`
`void`
`addDateHeader(String name, long value)`
`void`
`addHeader(String name, String value)`
`void`
`addIncludedUrl(String includedUrl)`
`void`
`addIntHeader(String name, int value)`
`boolean`
`containsHeader(String name)`
`String`
`encodeRedirectURL(String url)`
The default implementation delegates to `encodeURL(java.lang.String)`, returning the given URL String as-is.
`String`
`encodeURL(String url)`
The default implementation returns the given URL String as-is.
`void`
`flushBuffer()`
`int`
`getBufferSize()`
`String`
`getCharacterEncoding()`
`byte[]`
`getContentAsByteArray()`
`String`
`getContentAsString()`
Get the content of the response body as a `String`, using the charset specified for the response by the application, either through `HttpServletResponse` methods or through a charset parameter on the `Content-Type`.
`String`
`getContentAsString(Charset fallbackCharset)`
Get the content of the response body as a `String`, using the provided `fallbackCharset` if no charset has been explicitly defined and otherwise using the charset specified for the response by the application, either through `HttpServletResponse` methods or through a charset parameter on the `Content-Type`.
`int`
`getContentLength()`
Get the length of the content body from the HTTP Content-Length header.
`long`
`getContentLengthLong()`
`String`
`getContentType()`
`Cookie`
`getCookie(String name)`
`Cookie[]`
`getCookies()`
`long`
`getDateHeader(String name)`
`String`
`getErrorMessage()`
Return the error message used when calling `HttpServletResponse.sendError(int, String)`.
`String`
`getForwardedUrl()`
`String`
`getHeader(String name)`
Return the primary value for the given header as a String, if any.
`Collection<String>`
`getHeaderNames()`
Return the names of all specified headers as a Set of Strings.
`List<String>`
`getHeaders(String name)`
Return all values for the given header as a List of Strings.
`Object`
`getHeaderValue(String name)`
Return the primary value for the given header, if any.
`List<Object>`
`getHeaderValues(String name)`
Return all values for the given header as a List of value objects.
`String`
`getIncludedUrl()`
`List<String>`
`getIncludedUrls()`
`Locale`
`getLocale()`
`ServletOutputStream`
`getOutputStream()`
`String`
`getRedirectedUrl()`
`int`
`getStatus()`
`PrintWriter`
`getWriter()`
`boolean`
`isCharset()`
Determine whether the character encoding has been explicitly set through `HttpServletResponse` methods or through a `charset` parameter on the `Content-Type`.
`boolean`
`isCommitted()`
`boolean`
`isOutputStreamAccessAllowed()`
Return whether `getOutputStream()` access is allowed.
`boolean`
`isWriterAccessAllowed()`
Return whether `getOutputStream()` access is allowed.
`void`
`reset()`
`void`
`resetBuffer()`
`void`
`sendError(int status)`
`void`
`sendError(int status, String errorMessage)`
`void`
`sendRedirect(String url)`
`void`
`sendRedirect(String url, int sc, boolean clearBuffer)`
`void`
`setBufferSize(int bufferSize)`
`void`
`setCharacterEncoding(String characterEncoding)`
`void`
`setCommitted(boolean committed)`
`void`
`setContentLength(int contentLength)`
`void`
`setContentLengthLong(long contentLength)`
`void`
`setContentType(String contentType)`
`void`
`setDateHeader(String name, long value)`
`void`
`setDefaultCharacterEncoding(String characterEncoding)`
Set the default character encoding for the response.
`void`
`setForwardedUrl(String forwardedUrl)`
`void`
`setHeader(String name, String value)`
`void`
`setIncludedUrl(String includedUrl)`
`void`
`setIntHeader(String name, int value)`
`void`
`setLocale(Locale locale)`
`void`
`setOutputStreamAccessAllowed(boolean outputStreamAccessAllowed)`
Set whether `getOutputStream()` access is allowed.
`void`
`setStatus(int status)`
`void`
`setWriterAccessAllowed(boolean writerAccessAllowed)`
Set whether `getWriter()` access is allowed.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface jakarta.servlet.http.HttpServletResponse

`getTrailerFields, setTrailerFields`

## Constructor Details

### MockHttpServletResponse

public MockHttpServletResponse()

## Method Details

### setOutputStreamAccessAllowed

public void setOutputStreamAccessAllowed(boolean outputStreamAccessAllowed)
Set whether `getOutputStream()` access is allowed.

Default is `true`.

### isOutputStreamAccessAllowed

public boolean isOutputStreamAccessAllowed()
Return whether `getOutputStream()` access is allowed.

### setWriterAccessAllowed

public void setWriterAccessAllowed(boolean writerAccessAllowed)
Set whether `getWriter()` access is allowed.

Default is `true`.

### isWriterAccessAllowed

public boolean isWriterAccessAllowed()
Return whether `getOutputStream()` access is allowed.

### setDefaultCharacterEncoding

public void setDefaultCharacterEncoding(String characterEncoding)
Set the default character encoding for the response.

If this method is not invoked, `ISO-8859-1` will be used as the default character encoding.

If the character encoding for the response has not already been explicitly set via `setCharacterEncoding(String)` or `setContentType(String)`, the character encoding for the response will be set to the supplied default character encoding.

Parameters:
  `characterEncoding` - the default character encoding
Since:
  5.3.10
See Also:
  - `setCharacterEncoding(String)`
  - `setContentType(String)`

### isCharset

public boolean isCharset()
Determine whether the character encoding has been explicitly set through `HttpServletResponse` methods or through a `charset` parameter on the `Content-Type`.

If `false`, `getCharacterEncoding()` will return the default character encoding.

### setCharacterEncoding

public void setCharacterEncoding(@Nullable String characterEncoding)

Specified by:
  `setCharacterEncoding` in interface `ServletResponse`

### getCharacterEncoding

public String getCharacterEncoding()

Specified by:
  `getCharacterEncoding` in interface `ServletResponse`

### getOutputStream

public ServletOutputStream getOutputStream()

Specified by:
  `getOutputStream` in interface `ServletResponse`

### getWriter

public PrintWriter getWriter() throws UnsupportedEncodingException

Specified by:
  `getWriter` in interface `ServletResponse`
Throws:
  `UnsupportedEncodingException`

### getContentAsByteArray

public byte[] getContentAsByteArray()

### getContentAsString

public String getContentAsString() throws UnsupportedEncodingException
Get the content of the response body as a `String`, using the charset specified for the response by the application, either through `HttpServletResponse` methods or through a charset parameter on the `Content-Type`. If no charset has been explicitly defined, the default character encoding will be used.

Returns:
  the content as a `String`
Throws:
  `UnsupportedEncodingException` - if the character encoding is not supported
See Also:
  - `getContentAsString(Charset)`
  - `setCharacterEncoding(String)`
  - `setContentType(String)`

### getContentAsString

public String getContentAsString(Charset fallbackCharset) throws UnsupportedEncodingException
Get the content of the response body as a `String`, using the provided `fallbackCharset` if no charset has been explicitly defined and otherwise using the charset specified for the response by the application, either through `HttpServletResponse` methods or through a charset parameter on the `Content-Type`.

Returns:
  the content as a `String`
Throws:
  `UnsupportedEncodingException` - if the character encoding is not supported
Since:
  5.2
See Also:
  - `getContentAsString()`
  - `setCharacterEncoding(String)`
  - `setContentType(String)`

### setContentLength

public void setContentLength(int contentLength)

Specified by:
  `setContentLength` in interface `ServletResponse`

### getContentLength

public int getContentLength()
Get the length of the content body from the HTTP Content-Length header.

Returns:
  the value of the Content-Length header
See Also:
  - `setContentLength(int)`

### setContentLengthLong

public void setContentLengthLong(long contentLength)

Specified by:
  `setContentLengthLong` in interface `ServletResponse`

### getContentLengthLong

public long getContentLengthLong()

### setContentType

public void setContentType(@Nullable String contentType)

Specified by:
  `setContentType` in interface `ServletResponse`

### getContentType

@Nullable public String getContentType()

Specified by:
  `getContentType` in interface `ServletResponse`

### setBufferSize

public void setBufferSize(int bufferSize)

Specified by:
  `setBufferSize` in interface `ServletResponse`

### getBufferSize

public int getBufferSize()

Specified by:
  `getBufferSize` in interface `ServletResponse`

### flushBuffer

public void flushBuffer()

Specified by:
  `flushBuffer` in interface `ServletResponse`

### resetBuffer

public void resetBuffer()

Specified by:
  `resetBuffer` in interface `ServletResponse`

### setCommitted

public void setCommitted(boolean committed)

### isCommitted

public boolean isCommitted()

Specified by:
  `isCommitted` in interface `ServletResponse`

### reset

public void reset()

Specified by:
  `reset` in interface `ServletResponse`

### setLocale

public void setLocale(@Nullable Locale locale)

Specified by:
  `setLocale` in interface `ServletResponse`

### getLocale

public Locale getLocale()

Specified by:
  `getLocale` in interface `ServletResponse`

### addCookie

public void addCookie(Cookie cookie)

Specified by:
  `addCookie` in interface `HttpServletResponse`

### getCookies

public Cookie[] getCookies()

### getCookie

@Nullable public Cookie getCookie(String name)

### containsHeader

public boolean containsHeader(String name)

Specified by:
  `containsHeader` in interface `HttpServletResponse`

### getHeaderNames

public Collection<String> getHeaderNames()
Return the names of all specified headers as a Set of Strings.

As of Servlet 3.0, this method is also defined in `HttpServletResponse`.

Specified by:
  `getHeaderNames` in interface `HttpServletResponse`
Returns:
  the `Set` of header name `Strings`, or an empty `Set` if none

### getHeader

@Nullable public String getHeader(String name)
Return the primary value for the given header as a String, if any.

Will return the first value in case of multiple values.

Returns a stringified value for Servlet 3.0 compatibility. Consider using `getHeaderValue(String)` for raw Object access.

Specified by:
  `getHeader` in interface `HttpServletResponse`
Parameters:
  `name` - the name of the header
Returns:
  the associated header value, or `null` if none
See Also:
  - `HttpServletResponse.getHeader(String)`

### getHeaders

public List<String> getHeaders(String name)
Return all values for the given header as a List of Strings.

Returns a List of stringified values for Servlet 3.0 compatibility. Consider using `getHeaderValues(String)` for raw Object access.

Specified by:
  `getHeaders` in interface `HttpServletResponse`
Parameters:
  `name` - the name of the header
Returns:
  the associated header values, or an empty List if none
See Also:
  - `HttpServletResponse.getHeaders(String)`

### getHeaderValue

@Nullable public Object getHeaderValue(String name)
Return the primary value for the given header, if any.

Will return the first value in case of multiple values.

Parameters:
  `name` - the name of the header
Returns:
  the associated header value, or `null` if none

### getHeaderValues

public List<Object> getHeaderValues(String name)
Return all values for the given header as a List of value objects.

Parameters:
  `name` - the name of the header
Returns:
  the associated header values, or an empty List if none

### encodeURL

public String encodeURL(String url)
The default implementation returns the given URL String as-is.

Can be overridden in subclasses, appending a session id or the like.

Specified by:
  `encodeURL` in interface `HttpServletResponse`

### encodeRedirectURL

public String encodeRedirectURL(String url)
The default implementation delegates to `encodeURL(java.lang.String)`, returning the given URL String as-is.

Can be overridden in subclasses, appending a session id or the like in a redirect-specific fashion. For general URL encoding rules, override the common `encodeURL(java.lang.String)` method instead, applying to redirect URLs as well as to general URLs.

Specified by:
  `encodeRedirectURL` in interface `HttpServletResponse`

### sendError

public void sendError(int status, String errorMessage) throws IOException

Specified by:
  `sendError` in interface `HttpServletResponse`
Throws:
  `IOException`

### sendError

public void sendError(int status) throws IOException

Specified by:
  `sendError` in interface `HttpServletResponse`
Throws:
  `IOException`

### sendRedirect

public void sendRedirect(String url) throws IOException

Specified by:
  `sendRedirect` in interface `HttpServletResponse`
Throws:
  `IOException`

### sendRedirect

public void sendRedirect(String url, int sc, boolean clearBuffer) throws IOException

Throws:
  `IOException`

### getRedirectedUrl

@Nullable public String getRedirectedUrl()

### setDateHeader

public void setDateHeader(String name, long value)

Specified by:
  `setDateHeader` in interface `HttpServletResponse`

### addDateHeader

public void addDateHeader(String name, long value)

Specified by:
  `addDateHeader` in interface `HttpServletResponse`

### getDateHeader

public long getDateHeader(String name)

### setHeader

public void setHeader(String name, @Nullable String value)

Specified by:
  `setHeader` in interface `HttpServletResponse`

### addHeader

public void addHeader(String name, @Nullable String value)

Specified by:
  `addHeader` in interface `HttpServletResponse`

### setIntHeader

public void setIntHeader(String name, int value)

Specified by:
  `setIntHeader` in interface `HttpServletResponse`

### addIntHeader

public void addIntHeader(String name, int value)

Specified by:
  `addIntHeader` in interface `HttpServletResponse`

### setStatus

public void setStatus(int status)

Specified by:
  `setStatus` in interface `HttpServletResponse`

### getStatus

public int getStatus()

Specified by:
  `getStatus` in interface `HttpServletResponse`

### getErrorMessage

@Nullable public String getErrorMessage()
Return the error message used when calling `HttpServletResponse.sendError(int, String)`.

### setForwardedUrl

public void setForwardedUrl(@Nullable String forwardedUrl)

### getForwardedUrl

@Nullable public String getForwardedUrl()

### setIncludedUrl

public void setIncludedUrl(@Nullable String includedUrl)

### getIncludedUrl

@Nullable public String getIncludedUrl()

### addIncludedUrl

public void addIncludedUrl(String includedUrl)

### getIncludedUrls

public List<String> getIncludedUrls()