Package org.htmlunit

# Class WebResponse

java.lang.Object
org.htmlunit.WebResponse

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `StringWebResponse`, `WebResponseWrapper`

public class WebResponse extends Object implements Serializable
A response from a web server.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WebResponse(WebResponseData responseData, URL url, HttpMethod requestMethod, long loadTime)`
  Constructs with all data.
  `WebResponse(WebResponseData responseData, WebRequest request, long loadTime)`
  Constructs with all data.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `cleanUp()`
  Clean up the response data.
  `void`
  `defaultCharsetUtf8()`
  Deprecated.
  as of version 4.0.0; use `WebRequest.setDefaultResponseContentCharset(Charset)` instead
  `String`
  `getBlockReason()`
  `InputStream`
  `getContentAsStream()`
  Returns the response content as an input stream.
  `InputStream`
  `getContentAsStreamWithBomIfApplicable()`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  `String`
  `getContentAsString()`
  Returns the response content as a string, using the charset/encoding specified in the server response.
  `String`
  `getContentAsString(Charset encoding)`
  Returns the response content as a string, using the specified charset, rather than the charset/encoding specified in the server response.
  `Charset`
  `getContentCharset()`
  Returns the content charset for this response, even if no charset was specified explicitly.
  `Charset`
  `getContentCharsetOrNull()`
  Deprecated.
  as of version 4.0.0; use `getContentCharset()` instead
  `long`
  `getContentLength()`
  Returns length of the content data.
  `String`
  `getContentType()`
  Returns the content type returned from the server, e.g.
  `Charset`
  `getHeaderContentCharset()`
  Returns the content charset specified explicitly in the `Content-Type` header or `null` if none was specified.
  `long`
  `getLoadTime()`
  Returns the time it took to load this web response, in milliseconds.
  `String`
  `getProtocolVersion()`
  Deprecated.
  For internal use only.
  `int`
  `getRawSize()`
  Deprecated.
  For internal use only.
  `List<NameValuePair>`
  `getResponseHeaders()`
  Returns the response headers as a list of `NameValuePair`s.
  `String`
  `getResponseHeaderValue(String headerName)`
  Returns the value of the specified response header.
  `int`
  `getStatusCode()`
  Returns the status code that was returned by the server.
  `String`
  `getStatusMessage()`
  Returns the status message that was returned from the server.
  `WebRequest`
  `getWebRequest()`
  Returns the request used to load this response.
  `boolean`
  `isSuccess()`
  `boolean`
  `isSuccessOrUseProxy()`
  `boolean`
  `isSuccessOrUseProxyOrNotModified()`
  `void`
  `markAsBlocked(String blockReason)`
  Sets the wasBlocked state to true.
  `void`
  `setProtocolVersion(String protocolVersion)`
  Deprecated.
  For internal use only.
  `void`
  `setRawSize(int size)`
  Deprecated.
  For internal use only.
  `boolean`
  `wasBlocked()`
  `boolean`
  `wasContentCharsetTentative()`
  Returns whether the charset of the previous call to `getContentCharset()` was "tentative".

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

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

- ## Constructor Details

  - ### WebResponse

    public WebResponse(WebResponseData responseData, URL url, HttpMethod requestMethod, long loadTime)
    Constructs with all data.
    Parameters:
      `responseData` - Data that was send back
      `url` - Where this response came from
      `requestMethod` - the method used to get this response
      `loadTime` - How long the response took to be sent

  - ### WebResponse

    public WebResponse(WebResponseData responseData, WebRequest request, long loadTime)
    Constructs with all data.
    Parameters:
      `responseData` - Data that was send back
      `request` - the request used to get this response
      `loadTime` - How long the response took to be sent

- ## Method Details

  - ### getWebRequest

    public WebRequest getWebRequest()
    Returns the request used to load this response.
    Returns:
      the request used to load this response

  - ### getResponseHeaders

    public List<NameValuePair> getResponseHeaders()
    Returns the response headers as a list of `NameValuePair`s.
    Returns:
      the response headers as a list of `NameValuePair`s

  - ### getResponseHeaderValue

    public String getResponseHeaderValue(String headerName)
    Returns the value of the specified response header.
    Parameters:
      `headerName` - the name of the header whose value is to be returned
    Returns:
      the header value, `null` if no response header exists with this name

  - ### getStatusCode

    public int getStatusCode()
    Returns the status code that was returned by the server.
    Returns:
      the status code that was returned by the server

  - ### getStatusMessage

    public String getStatusMessage()
    Returns the status message that was returned from the server.
    Returns:
      the status message that was returned from the server

  - ### getContentType

    public String getContentType()
    Returns the content type returned from the server, e.g. "text/html".
    Returns:
      the content type returned from the server, e.g. "text/html"

  - ### getHeaderContentCharset

    public Charset getHeaderContentCharset()
    Returns the content charset specified explicitly in the `Content-Type` header or `null` if none was specified.
    Returns:
      the content charset specified header or `null` if none was specified

  - ### getContentCharsetOrNull

    @Deprecated public Charset getContentCharsetOrNull()
    Deprecated.
    as of version 4.0.0; use `getContentCharset()` instead
    Returns the content charset specified explicitly in the header or in the content, or `null` if none was specified.
    Returns:
      the content charset specified explicitly in the header or in the content, or `null` if none was specified

  - ### getContentCharset

    public Charset getContentCharset()
    Returns the content charset for this response, even if no charset was specified explicitly.

    This method always returns a valid charset. This method first checks the `Content-Type` header or in the content BOM for viable charset. If not found, it attempts to determine the charset based on the type of the content. As a last resort, this method returns the value of `WebRequest.getDefaultResponseContentCharset()` which is `StandardCharsets.UTF_8` by default.

    Returns:
      the content charset for this response

  - ### wasContentCharsetTentative

    public boolean wasContentCharsetTentative()
    Returns whether the charset of the previous call to `getContentCharset()` was "tentative".

    A charset is classed as "tentative" if its detection is prone to false positive/negatives.

    For example, HTML meta-tag sniffing can be fooled by text that looks-like-a-meta-tag inside JavaScript code (false positive) or if the meta-tag is after the first 1024 bytes (false negative).

    Returns:
      `true` if the charset of the previous call to `getContentCharset()` was "tentative".
    See Also:
      - https://html.spec.whatwg.org/multipage/parsing.html#concept-encoding-confidence

  - ### getContentAsString

    public String getContentAsString()
    Returns the response content as a string, using the charset/encoding specified in the server response.
    Returns:
      the response content as a string, using the charset/encoding specified in the server response or null if the content retrieval was failing

  - ### getContentAsString

    public String getContentAsString(Charset encoding)
    Returns the response content as a string, using the specified charset, rather than the charset/encoding specified in the server response. If there is a bom header the charset parameter will be overwritten by the bom.
    Parameters:
      `encoding` - the charset/encoding to use to convert the response content into a string
    Returns:
      the response content as a string or null if the content retrieval was failing

  - ### getContentLength

    public long getContentLength()
    Returns length of the content data.
    Returns:
      the length

  - ### getContentAsStream

    public InputStream getContentAsStream() throws IOException
    Returns the response content as an input stream.
    Returns:
      the response content as an input stream
    Throws:
      `IOException` - in case of IOProblems

  - ### getContentAsStreamWithBomIfApplicable

    public InputStream getContentAsStreamWithBomIfApplicable() throws IOException
    INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
    Returns:
      the associated InputStream wrapped with a bom input stream if applicable
    Throws:
      `IOException` - in case of IO problems

  - ### getLoadTime

    public long getLoadTime()
    Returns the time it took to load this web response, in milliseconds.
    Returns:
      the time it took to load this web response, in milliseconds

  - ### cleanUp

    public void cleanUp()
    Clean up the response data.

  - ### defaultCharsetUtf8

    @Deprecated public void defaultCharsetUtf8()
    Deprecated.
    as of version 4.0.0; use `WebRequest.setDefaultResponseContentCharset(Charset)` instead
    Mark this response for using UTF-8 as default charset.

  - ### isSuccess

    public boolean isSuccess()
    Returns:
      true if the 2xx

  - ### isSuccessOrUseProxy

    public boolean isSuccessOrUseProxy()
    Returns:
      true if the 2xx or 305

  - ### isSuccessOrUseProxyOrNotModified

    public boolean isSuccessOrUseProxyOrNotModified()
    Returns:
      true if the 2xx or 305

  - ### wasBlocked

    public boolean wasBlocked()
    Returns:
      true if the request was blocked

  - ### getBlockReason

    public String getBlockReason()
    Returns:
      the reason for blocking or null

  - ### markAsBlocked

    public void markAsBlocked(String blockReason)
    Sets the wasBlocked state to true.
    Parameters:
      `blockReason` - the reason

  - ### getRawSize

    @Deprecated public int getRawSize()
    Deprecated.
    For internal use only. Will be removed in next release.
    Returns the raw size of this response.
    Returns:
      this response's raw size

  - ### setRawSize

    @Deprecated public void setRawSize(int size)
    Deprecated.
    For internal use only. Will be removed in next release.
    Sets the raw size of this response.
    Parameters:
      `size` - the raw size in bytes

  - ### getProtocolVersion

    @Deprecated public String getProtocolVersion()
    Deprecated.
    For internal use only.
    Returns the protocol version of this response, for example "HTTP/1.1".
    Returns:
      the protocol version

  - ### setProtocolVersion

    @Deprecated public void setProtocolVersion(String protocolVersion)
    Deprecated.
    For internal use only.
    Sets the protocol version of this response, for example "HTTP/1.1".
    Parameters:
      `protocolVersion` - the protocol version