Package org.htmlunit

Class WebRequest

  • All Implemented Interfaces:
    java.io.Serializable

    public class WebRequest
    extends java.lang.Object
    implements java.io.Serializable
    Parameter object for making web requests.
    See Also:
    Serialized Form
    • Constructor Detail

      • WebRequest

        public WebRequest​(java.net.URL url,
                          java.lang.String acceptHeader,
                          java.lang.String acceptEncodingHeader)
        Instantiates a WebRequest for the specified URL.
        Parameters:
        url - the target URL
        acceptHeader - the accept header to use
        acceptEncodingHeader - the accept encoding header to use
      • WebRequest

        public WebRequest​(java.net.URL url,
                          java.nio.charset.Charset charset,
                          java.net.URL refererUrl)
        Instantiates a WebRequest for the specified URL.
        Parameters:
        url - the target URL
        charset - the charset to use
        refererUrl - the url be used by the referer header
      • WebRequest

        public WebRequest​(java.net.URL url)
        Instantiates a WebRequest for the specified URL.
        Parameters:
        url - the target URL
      • WebRequest

        public WebRequest​(java.net.URL url,
                          HttpMethod submitMethod)
        Instantiates a WebRequest for the specified URL using the specified HTTP submit method.
        Parameters:
        url - the target URL
        submitMethod - the HTTP submit method to use
    • Method Detail

      • getOriginalURL

        public java.net.URL getOriginalURL()
      • setOriginalURL

        public void setOriginalURL​(java.net.URL url)
      • isRedirected

        public boolean isRedirected()
      • setXHR

        public void setXHR()
      • isXHR

        public boolean isXHR()
      • setDocumentRequest

        public void setDocumentRequest()
      • isDocumentRequest

        public boolean isDocumentRequest()
      • newAboutBlankRequest

        public static WebRequest newAboutBlankRequest()
        Returns:
        a new request for about:blank
      • getUrl

        public java.net.URL getUrl()
        Returns the target URL.
        Returns:
        the target URL
      • setUrl

        public void setUrl​(java.net.URL url)
        Sets the target URL. The URL may be simplified if needed (for instance eliminating irrelevant path portions like "/./").
        Parameters:
        url - the target URL
      • getProxyHost

        public java.lang.String getProxyHost()
        Returns the proxy host to use.
        Returns:
        the proxy host to use
      • setProxyHost

        public void setProxyHost​(java.lang.String proxyHost)
        Sets the proxy host to use.
        Parameters:
        proxyHost - the proxy host to use
      • getProxyPort

        public int getProxyPort()
        Returns the proxy port to use.
        Returns:
        the proxy port to use
      • setProxyPort

        public void setProxyPort​(int proxyPort)
        Sets the proxy port to use.
        Parameters:
        proxyPort - the proxy port to use
      • getProxyScheme

        public java.lang.String getProxyScheme()
        Returns the proxy scheme to use.
        Returns:
        the proxy scheme to use
      • setProxyScheme

        public void setProxyScheme​(java.lang.String proxyScheme)
        Sets the proxy scheme to use.
        Parameters:
        proxyScheme - the proxy scheme to use
      • isSocksProxy

        public boolean isSocksProxy()
        Returns whether SOCKS proxy or not.
        Returns:
        whether SOCKS proxy or not
      • setSocksProxy

        public void setSocksProxy​(boolean isSocksProxy)
        Sets whether SOCKS proxy or not.
        Parameters:
        isSocksProxy - whether SOCKS proxy or not
      • getTimeout

        public int getTimeout()
        Returns:
        the timeout to use
      • setTimeout

        public void setTimeout​(int timeout)
        Sets the timeout to use.
        Parameters:
        timeout - the timeout to use
      • getEncodingType

        public FormEncodingType getEncodingType()
        Returns the form encoding type to use.
        Returns:
        the form encoding type to use
      • setEncodingType

        public void setEncodingType​(FormEncodingType encodingType)
        Sets the form encoding type to use.
        Parameters:
        encodingType - the form encoding type to use
      • getParameters

        public java.util.List<NameValuePair> getParameters()
        Retrieves the request parameters in use. Similar to the servlet api this will work depending on the request type and check the url parameters and the body. The value is also normalized - null is converted to an empty string.
        Returns:
        the request parameters to use
      • getRequestParameters

        public java.util.List<NameValuePair> getRequestParameters()
        INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
        Retrieves the request parameters to use. If set, these request parameters will overwrite any request parameters which may be present in the URL. Should not be used in combination with the request body.
        Returns:
        the request parameters to use
      • setRequestParameters

        public void setRequestParameters​(java.util.List<NameValuePair> requestParameters)
                                  throws java.lang.RuntimeException
        INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
        Sets the request parameters to use. If set, these request parameters will overwrite any request parameters which may be present in the URL. Should not be used in combination with the request body.
        Parameters:
        requestParameters - the request parameters to use
        Throws:
        java.lang.RuntimeException - if the request body has already been set
      • getRequestBody

        public java.lang.String getRequestBody()
        Returns the body content to be submitted if this is a POST request. Ignored for all other request types. Should not be used in combination with request parameters.
        Returns:
        the body content to be submitted if this is a POST request
      • setRequestBody

        public void setRequestBody​(java.lang.String requestBody)
                            throws java.lang.RuntimeException
        Sets the body content to be submitted if this is a POST, PUT or PATCH request. Other request types result in RuntimeException. Should not be used in combination with request parameters.
        Parameters:
        requestBody - the body content to be submitted if this is a POST, PUT or PATCH request
        Throws:
        java.lang.RuntimeException - if the request parameters have already been set or this is not a POST, PUT or PATCH request.
      • getHttpMethod

        public HttpMethod getHttpMethod()
        Returns the HTTP submit method to use.
        Returns:
        the HTTP submit method to use
      • setHttpMethod

        public void setHttpMethod​(HttpMethod submitMethod)
        Sets the HTTP submit method to use.
        Parameters:
        submitMethod - the HTTP submit method to use
      • getAdditionalHeaders

        public java.util.Map<java.lang.String,​java.lang.String> getAdditionalHeaders()
        Returns the additional HTTP headers to use.
        Returns:
        the additional HTTP headers to use
      • setAdditionalHeaders

        public void setAdditionalHeaders​(java.util.Map<java.lang.String,​java.lang.String> additionalHeaders)
        Sets the additional HTTP headers to use.
        Parameters:
        additionalHeaders - the additional HTTP headers to use
      • isAdditionalHeader

        public boolean isAdditionalHeader​(java.lang.String name)
        Returns whether the specified header name is already included in the additional HTTP headers.
        Parameters:
        name - the name of the additional HTTP header
        Returns:
        true if the specified header name is included in the additional HTTP headers
      • getAdditionalHeader

        public java.lang.String getAdditionalHeader​(java.lang.String name)
        Returns the header value associated with this name.
        Parameters:
        name - the name of the additional HTTP header
        Returns:
        the value or null
      • setRefererlHeader

        public void setRefererlHeader​(java.net.URL url)
        Sets the referer HTTP header - only if the provided url is valid.
        Parameters:
        url - the url for the referer HTTP header
      • setAdditionalHeader

        public void setAdditionalHeader​(java.lang.String name,
                                        java.lang.String value)
        Sets the specified name/value pair in the additional HTTP headers.
        Parameters:
        name - the name of the additional HTTP header
        value - the value of the additional HTTP header
      • removeAdditionalHeader

        public void removeAdditionalHeader​(java.lang.String name)
        Removed the specified name/value pair from the additional HTTP headers.
        Parameters:
        name - the name of the additional HTTP header
      • getUrlCredentials

        public org.apache.http.auth.Credentials getUrlCredentials()
        Returns the credentials to use.
        Returns:
        the credentials if set as part of the url
      • getCredentials

        public org.apache.http.auth.Credentials getCredentials()
        Returns the credentials to use.
        Returns:
        the credentials if set from the external builder
      • setCredentials

        public void setCredentials​(org.apache.http.auth.Credentials credentials)
        Sets the credentials to use.
        Parameters:
        credentials - the credentials to use
      • getCharset

        public java.nio.charset.Charset getCharset()
        Returns the character set to use to perform the request.
        Returns:
        the character set to use to perform the request
      • setCharset

        public void setCharset​(java.nio.charset.Charset charset)
        Sets the character set to use to perform the request. The default value is StandardCharsets.ISO_8859_1.
        Parameters:
        charset - the character set to use to perform the request
      • toString

        public java.lang.String toString()
        Returns a string representation of this object.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representation of this object