Package org.htmlunit

Class WebResponse

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    StringWebResponse, WebResponseWrapper

    public class WebResponse
    extends java.lang.Object
    implements java.io.Serializable
    A response from a web server.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int FORBIDDEN
      Deprecated.
      as of version 3.1.0; use HttpClientConverter.FORBIDDEN instead
      static int INTERNAL_SERVER_ERROR
      Deprecated.
      as of version 3.1.0; use HttpClientConverter.INTERNAL_SERVER_ERROR instead
      static int NO_CONTENT
      Deprecated.
      as of version 3.1.0; use HttpClientConverter.NO_CONTENT instead
      static int NOT_FOUND
      Deprecated.
      as of version 3.1.0; use HttpClientConverter.NOT_FOUND instead
      static int OK
      Deprecated.
      as of version 3.1.0; use HttpClientConverter.OK instead
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void cleanUp()
      Clean up the response data.
      void defaultCharsetUtf8()
      Mark this response for using UTF-8 as default charset.
      java.lang.String getBlockReason()  
      java.io.InputStream getContentAsStream()
      Returns the response content as an input stream.
      java.io.InputStream getContentAsStreamWithBomIfApplicable()
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      java.lang.String getContentAsString()
      Returns the response content as a string, using the charset/encoding specified in the server response.
      java.lang.String getContentAsString​(java.nio.charset.Charset encoding)
      Returns the response content as a string, using the specified charset, rather than the charset/encoding specified in the server response.
      java.lang.String getContentAsString​(java.nio.charset.Charset encoding, boolean ignoreUtf8Bom)
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Returns the response content as a string, using the specified charset, rather than the charset/encoding specified in the server response.
      java.nio.charset.Charset getContentCharset()
      Returns the content charset for this response, even if no charset was specified explicitly.
      java.nio.charset.Charset getContentCharsetOrNull()
      Returns the content charset specified explicitly in the header or in the content, or null if none was specified.
      long getContentLength()
      Returns length of the content data.
      java.lang.String getContentType()
      Returns the content type returned from the server, e.g.
      long getLoadTime()
      Returns the time it took to load this web response, in milliseconds.
      java.lang.String getProtocolVersion()
      Deprecated.
      For internal use only.
      int getRawSize()
      Deprecated.
      For internal use only.
      java.util.List<NameValuePair> getResponseHeaders()
      Returns the response headers as a list of NameValuePairs.
      java.lang.String getResponseHeaderValue​(java.lang.String headerName)
      Returns the value of the specified response header.
      int getStatusCode()
      Returns the status code that was returned by the server.
      java.lang.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​(java.lang.String blockReason)
      Sets the wasBlocked state to true.
      void setProtocolVersion​(java.lang.String protocolVersion)
      Deprecated.
      For internal use only.
      void setRawSize​(int size)
      Deprecated.
      For internal use only.
      boolean wasBlocked()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • OK

        @Deprecated
        public static final int OK
        Deprecated.
        as of version 3.1.0; use HttpClientConverter.OK instead
        Forwarder to HttpStatus.SC_OK.
        See Also:
        Constant Field Values
      • FORBIDDEN

        @Deprecated
        public static final int FORBIDDEN
        Deprecated.
        as of version 3.1.0; use HttpClientConverter.FORBIDDEN instead
        Forwarder to HttpStatus.SC_FORBIDDEN.
        See Also:
        Constant Field Values
      • NOT_FOUND

        @Deprecated
        public static final int NOT_FOUND
        Deprecated.
        as of version 3.1.0; use HttpClientConverter.NOT_FOUND instead
        Forwarder to HttpStatus.SC_NOT_FOUND.
        See Also:
        Constant Field Values
      • NO_CONTENT

        @Deprecated
        public static final int NO_CONTENT
        Deprecated.
        as of version 3.1.0; use HttpClientConverter.NO_CONTENT instead
        Forwarder to HttpStatus.SC_NO_CONTENT.
        See Also:
        Constant Field Values
      • INTERNAL_SERVER_ERROR

        @Deprecated
        public static final int INTERNAL_SERVER_ERROR
        Deprecated.
        as of version 3.1.0; use HttpClientConverter.INTERNAL_SERVER_ERROR instead
        Forwarder to HttpStatus.SC_INTERNAL_SERVER_ERROR.
        See Also:
        Constant Field Values
    • Constructor Detail

      • WebResponse

        public WebResponse​(WebResponseData responseData,
                           java.net.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 Detail

      • getWebRequest

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

        public java.util.List<NameValuePair> getResponseHeaders()
        Returns the response headers as a list of NameValuePairs.
        Returns:
        the response headers as a list of NameValuePairs
      • getResponseHeaderValue

        public java.lang.String getResponseHeaderValue​(java.lang.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 java.lang.String getStatusMessage()
        Returns the status message that was returned from the server.
        Returns:
        the status message that was returned from the server
      • getContentType

        public java.lang.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"
      • getContentCharsetOrNull

        public java.nio.charset.Charset getContentCharsetOrNull()
        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 java.nio.charset.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; if not found, it checks the request charset; as a last resort, this method returns StandardCharsets.ISO_8859_1. If no charset is defined for an xml response, then UTF-8 is used
        Returns:
        the content charset for this response
        See Also:
        Character Encoding
      • getContentAsString

        public java.lang.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 java.lang.String getContentAsString​(java.nio.charset.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
      • getContentAsString

        public java.lang.String getContentAsString​(java.nio.charset.Charset encoding,
                                                   boolean ignoreUtf8Bom)
        INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
        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
        ignoreUtf8Bom - if true utf8 bom header will be ignored
        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 java.io.InputStream getContentAsStream()
                                               throws java.io.IOException
        Returns the response content as an input stream.
        Returns:
        the response content as an input stream
        Throws:
        java.io.IOException - in case of IOProblems
      • getContentAsStreamWithBomIfApplicable

        public java.io.InputStream getContentAsStreamWithBomIfApplicable()
                                                                  throws java.io.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:
        java.io.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

        public void defaultCharsetUtf8()
        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 java.lang.String getBlockReason()
        Returns:
        the reason for blocking or null
      • markAsBlocked

        public void markAsBlocked​(java.lang.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 java.lang.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​(java.lang.String protocolVersion)
        Deprecated.
        For internal use only.
        Sets the protocol version of this response, for example "HTTP/1.1".
        Parameters:
        protocolVersion - the protocol version