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:
  • 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 NameValuePairs.
      Returns:
      the response headers as a list of NameValuePairs
    • 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:
    • 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.
      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