Package org.htmlunit

Class WebClientOptions

java.lang.Object
org.htmlunit.WebClientOptions
All Implemented Interfaces:
Serializable

public class WebClientOptions extends Object implements Serializable
Represents options of a WebClient.
See Also:
  • Constructor Details

    • WebClientOptions

      public WebClientOptions()
  • Method Details

    • setSSLContext

      public void setSSLContext(SSLContext sslContext)
      Sets the SSLContext; if this is set it is used and some other settings are ignored (protocol, keyStore, keyStorePassword, trustStore, sslClientCertificateStore, sslClientCertificatePassword).

      This property is transient (because SSLContext is not serializable)

      Parameters:
      sslContext - the SSLContext, null to use for default value
    • getSSLContext

      public SSLContext getSSLContext()
      Gets the SSLContext; if this is set this is used and some other settings are ignored (protocol, keyStore, keyStorePassword, trustStore, sslClientCertificateStore, sslClientCertificatePassword).

      This property is transient (because SSLContext is not serializable)

      Returns:
      the SSLContext
    • setUseInsecureSSL

      public void setUseInsecureSSL(boolean useInsecureSSL)
      If set to true, the client will accept connections to any host, regardless of whether they have valid certificates or not. This is especially useful when you are trying to connect to a server with expired or corrupt certificates.
      Parameters:
      useInsecureSSL - whether or not to use insecure SSL
    • isUseInsecureSSL

      public boolean isUseInsecureSSL()
      Indicates if insecure SSL should be used.
      Returns:
      true if insecure SSL should be used. Default is false.
    • setRedirectEnabled

      public void setRedirectEnabled(boolean enabled)
      Sets whether or not redirections will be followed automatically on receipt of a redirect status code from the server.
      Parameters:
      enabled - true to enable automatic redirection
    • getTempFileDirectory

      public File getTempFileDirectory()
      Returns the directory to be used for storing the response content in a temporary file see getMaxInMemory().
      Returns:
      the directory to be used for storing temp files or null to use the system default
    • setTempFileDirectory

      public void setTempFileDirectory(File tempFileDirectory) throws IOException
      Sets the directory to be used for storing the response content in a temporary file see setMaxInMemory(int). If the given directory does not exist, this creates it.
      Parameters:
      tempFileDirectory - the directory to be used or null to use the system default
      Throws:
      IOException - in case of error
    • isRedirectEnabled

      public boolean isRedirectEnabled()
      Returns whether or not redirections will be followed automatically on receipt of a redirect status code from the server.
      Returns:
      true if automatic redirection is enabled
    • setSSLClientCertificateKeyStore

      public void setSSLClientCertificateKeyStore(KeyStore keyStore, char[] keyStorePassword)
      Sets the SSL client certificate KeyStore to use.

      If the web server requires Renegotiation, you have to set system property "sun.security.ssl.allowUnsafeRenegotiation" to true, as hinted in TLS Renegotiation Issue.

      In some cases the impl seems to pick old certificates from the KeyStore. To avoid that, wrap your KeyStore inside your own KeyStore impl and filter out outdated certificates.

      This property is transient (because KeyStore is not serializable)

      Parameters:
      keyStore - KeyStore to use
      keyStorePassword - the keystore password
    • setSSLClientCertificateKeyStore

      public void setSSLClientCertificateKeyStore(URL keyStoreUrl, String keyStorePassword, String keyStoreType)
      Sets the SSL client certificate to use. The needed parameters are used to construct a KeyStore.

      If the web server requires Renegotiation, you have to set system property "sun.security.ssl.allowUnsafeRenegotiation" to true, as hinted in TLS Renegotiation Issue.

      This property is transient (because KeyStore is not serializable)

      Parameters:
      keyStoreUrl - the URL which locates the certificate KeyStore
      keyStorePassword - the certificate KeyStore password
      keyStoreType - the type of certificate KeyStore, usually jks or pkcs12
    • setSSLClientCertificateKeyStore

      public void setSSLClientCertificateKeyStore(InputStream keyStoreInputStream, String keyStorePassword, String keyStoreType)
      Sets the SSL client certificate KeyStore to use. The parameters are used to construct the KeyStore.

      If the web server requires Renegotiation, you have to set system property "sun.security.ssl.allowUnsafeRenegotiation" to true, as hinted in TLS Renegotiation Issue.

      In some cases the impl seems to pick old certificates from the KeyStore. To avoid that, wrap your KeyStore inside your own KeyStore impl and filter out outdated certificates. Provide the KeyStore to the options instead of the input stream.

      Parameters:
      keyStoreInputStream - the input stream which represents the KeyStore holding the certificates
      keyStorePassword - the KeyStore password
      keyStoreType - the type of KeyStore, usually jks or pkcs12
    • getSSLClientCertificateStore

      public KeyStore getSSLClientCertificateStore()
      Gets the SSLClientCertificateStore.

      This property is transient (because KeyStore is not serializable)

      Returns:
      the KeyStore for use on SSL connections
    • getSSLClientCertificatePassword

      public char[] getSSLClientCertificatePassword()
      Gets the SSLClientCertificatePassword.
      Returns:
      the password
    • getSSLClientProtocols

      public String[] getSSLClientProtocols()
      Gets the protocol versions enabled for use on SSL connections.
      Returns:
      the protocol versions enabled for use on SSL connections
      See Also:
    • setSSLClientProtocols

      public void setSSLClientProtocols(String... sslClientProtocols)
      Sets the protocol versions enabled for use on SSL connections, null to use default ones.
      Parameters:
      sslClientProtocols - the protocol versions
      See Also:
    • getSSLClientCipherSuites

      public String[] getSSLClientCipherSuites()
      Gets the cipher suites enabled for use on SSL connections.
      Returns:
      the cipher suites enabled for use on SSL connections
      See Also:
    • setSSLClientCipherSuites

      public void setSSLClientCipherSuites(String... sslClientCipherSuites)
      Sets the cipher suites enabled for use on SSL connections, null to use default ones.
      Parameters:
      sslClientCipherSuites - the cipher suites
      See Also:
    • setJavaScriptEnabled

      public void setJavaScriptEnabled(boolean enabled)
      Enables/disables JavaScript support. By default, this property is enabled.
      Parameters:
      enabled - true to enable JavaScript support
    • isJavaScriptEnabled

      public boolean isJavaScriptEnabled()
      Returns true if JavaScript is enabled and the script engine was loaded successfully.
      Returns:
      true if JavaScript is enabled
    • setCssEnabled

      public void setCssEnabled(boolean enabled)
      Enables/disables CSS support. By default, this property is enabled. If disabled HtmlUnit will not download the linked css files and also not triggered the associated onload/onerror events.
      Parameters:
      enabled - true to enable CSS support
    • isCssEnabled

      public boolean isCssEnabled()
      Returns true if CSS is enabled.
      Returns:
      true if CSS is enabled
    • setPopupBlockerEnabled

      public void setPopupBlockerEnabled(boolean enabled)
      Enable/disable the popup window blocker. By default, the popup blocker is disabled, and popup windows are allowed. When set to true, window.open() has no effect and returns null.
      Parameters:
      enabled - true to enable the popup window blocker
    • isPopupBlockerEnabled

      public boolean isPopupBlockerEnabled()
      Returns true if the popup window blocker is enabled.
      Returns:
      true if the popup window blocker is enabled
    • setDoNotTrackEnabled

      public void setDoNotTrackEnabled(boolean enabled)
      Enables/disables "Do Not Track" support. By default, this property is disabled.
      Parameters:
      enabled - true to enable "Do Not Track" support
    • isDoNotTrackEnabled

      public boolean isDoNotTrackEnabled()
      Returns true if "Do Not Track" is enabled.
      Returns:
      true if "Do Not Track" is enabled
    • setPrintContentOnFailingStatusCode

      public void setPrintContentOnFailingStatusCode(boolean enabled)
      Specify whether or not the content of the resulting document will be printed to the console in the event of a failing response code. Successful response codes are in the range 200-299. The default is true.
      Parameters:
      enabled - True to enable this feature
    • isPrintContentOnFailingStatusCode

      public boolean isPrintContentOnFailingStatusCode()
      Returns true if the content of the resulting document will be printed to the console in the event of a failing response code.
      Returns:
      true if the content of the resulting document will be printed to the console in the event of a failing response code
      See Also:
    • setThrowExceptionOnFailingStatusCode

      public void setThrowExceptionOnFailingStatusCode(boolean enabled)
      Specify whether or not an exception will be thrown in the event of a failing status code. Successful status codes are in the range 200-299. The default is true.
      Parameters:
      enabled - true to enable this feature
    • isThrowExceptionOnFailingStatusCode

      public boolean isThrowExceptionOnFailingStatusCode()
      Returns true if an exception will be thrown in the event of a failing response code.
      Returns:
      true if an exception will be thrown in the event of a failing response code
      See Also:
    • isThrowExceptionOnScriptError

      public boolean isThrowExceptionOnScriptError()
      Indicates if an exception should be thrown when a script execution fails (the default) or if it should be caught and just logged to allow page execution to continue.
      Returns:
      true if an exception is thrown on script error (the default)
    • setThrowExceptionOnScriptError

      public void setThrowExceptionOnScriptError(boolean enabled)
      Changes the behavior of this webclient when a script error occurs.
      Parameters:
      enabled - indicates if exception should be thrown or not
    • getHomePage

      public String getHomePage()
      Returns the client's current homepage.
      Returns:
      the client's current homepage
    • setHomePage

      public void setHomePage(String homePage)
      Sets the client's homepage.
      Parameters:
      homePage - the new homepage URL
    • getProxyConfig

      public ProxyConfig getProxyConfig()
      Returns the proxy configuration for this client.
      Returns:
      the proxy configuration for this client
    • setProxyConfig

      public void setProxyConfig(ProxyConfig proxyConfig)
      Sets the proxy configuration for this client.
      Parameters:
      proxyConfig - the proxy configuration for this client
    • getTimeout

      public int getTimeout()
      Gets the timeout value for the WebConnection. The default timeout is 90 seconds.
      Returns:
      the timeout value in milliseconds
      See Also:
    • setTimeout

      public void setTimeout(int timeout)

      Sets the timeout of the WebConnection. Set to zero for an infinite wait.

      Note: The timeout is used twice. The first is for making the socket connection, the second is for data retrieval. If the time is critical you must allow for twice the time specified here.

      Parameters:
      timeout - the value of the timeout in milliseconds
    • getConnectionTimeToLive

      public long getConnectionTimeToLive()
      Gets the connTimeToLive value for the HttpClient connection pool.
      Returns:
      the timeout value in milliseconds
    • setConnectionTimeToLive

      public void setConnectionTimeToLive(long connectionTimeToLive)
      Sets the connTimeToLive of the HttpClient connection pool. Use this if you are working with web pages behind a DNS based load balancer. Set to -1 (default) for disabling this timeout.
      Parameters:
      connectionTimeToLive - the value of the timeout in milliseconds
    • setSSLInsecureProtocol

      public void setSSLInsecureProtocol(String sslInsecureProtocol)
      Sets the SSL protocol, used only when setUseInsecureSSL(boolean) is set to true.
      Parameters:
      sslInsecureProtocol - the SSL protocol for insecure SSL connections, null to use for default value
    • getSSLInsecureProtocol

      public String getSSLInsecureProtocol()
      Gets the SSL protocol, to be used only when setUseInsecureSSL(boolean) is set to true.
      Returns:
      the SSL protocol for insecure SSL connections
    • setSSLTrustStore

      public void setSSLTrustStore(URL sslTrustStoreUrl, String sslTrustStorePassword, String sslTrustStoreType)
      Sets the SSL server certificate trust store. All server certificates will be validated against this trust store.

      This property is transient (because KeyStore is not serializable)

      The needed parameters are used to construct a KeyStore.

      Parameters:
      sslTrustStoreUrl - the URL which locates the trust store
      sslTrustStorePassword - the trust store password
      sslTrustStoreType - the type of trust store, usually jks or pkcs12
    • setSSLTrustStore

      public void setSSLTrustStore(KeyStore keyStore)
    • getSSLTrustStore

      public KeyStore getSSLTrustStore()
      Gets the SSL TrustStore.

      This property is transient (because KeyStore is not serializable)

      Returns:
      the SSL TrustStore for insecure SSL connections
    • getMaxInMemory

      public int getMaxInMemory()
      Returns the maximum bytes to have in memory, after which the content is saved to a temporary file. Default is 500 * 1024.
      Returns:
      the maximum bytes in memory
    • setMaxInMemory

      public void setMaxInMemory(int maxInMemory)
      Sets the maximum bytes to have in memory, after which the content is saved to a temporary file. Set this to zero or -1 to deactivate the saving at all.
      Parameters:
      maxInMemory - maximum bytes in memory
    • getHistorySizeLimit

      public int getHistorySizeLimit()
      Returns the maximum number of pages kept in WebWindow.getHistory().
      Returns:
      the maximum number of pages in history
    • setHistorySizeLimit

      public void setHistorySizeLimit(int historySizeLimit)
      Sets the History size limit. HtmlUnit uses SoftReferences<Page> for storing the pages that are part of the history. If you like to fine tune this you can use setHistoryPageCacheLimit(int) to limit the number of page references stored by the history.
      Parameters:
      historySizeLimit - maximum number of pages in history
    • getHistoryPageCacheLimit

      public int getHistoryPageCacheLimit()
      Returns the maximum number of pages to cache in history.
      Returns:
      the maximum number of pages to cache in history
    • setHistoryPageCacheLimit

      public void setHistoryPageCacheLimit(int historyPageCacheLimit)
      Sets the maximum number of pages to cache in history. If this value is smaller than the {getHistorySizeLimit() than HtmlUnit will only use soft references for the first historyPageCacheLimit entries in the history. For older entries only the url is saved; the page will be (re)retrieved on demand.
      Parameters:
      historyPageCacheLimit - maximum number of pages to cache in history default is Integer.MAX_VALUE; negative values are having the same effect as setting this to zero.
    • getLocalAddress

      public InetAddress getLocalAddress()
      Returns local address to be used for request execution.

      On machines with multiple network interfaces, this parameter can be used to select the network interface from which the connection originates.

      Default: null

      Returns:
      the local address
    • setLocalAddress

      public void setLocalAddress(InetAddress localAddress)
      Sets the local address to be used for request execution.

      On machines with multiple network interfaces, this parameter can be used to select the network interface from which the connection originates.

      Parameters:
      localAddress - the local address
    • setDownloadImages

      public void setDownloadImages(boolean downloadImages)
      Sets whether to automatically download images by default, or not.
      Parameters:
      downloadImages - whether to automatically download images by default, or not
    • isDownloadImages

      public boolean isDownloadImages()
      Returns whether to automatically download images by default, or not.
      Returns:
      whether to automatically download images by default, or not.
    • setScreenWidth

      public void setScreenWidth(int screenWidth)
      Sets the screen width.
      Parameters:
      screenWidth - the screen width
    • getScreenWidth

      public int getScreenWidth()
      Returns the screen width.
      Returns:
      the screen width
    • setScreenHeight

      public void setScreenHeight(int screenHeight)
      Sets the screen height.
      Parameters:
      screenHeight - the screen height
    • getScreenHeight

      public int getScreenHeight()
      Returns the screen height.
      Returns:
      the screen height
    • setWebSocketEnabled

      public void setWebSocketEnabled(boolean enabled)
      Enables/disables WebSocket support. By default, this property is enabled.
      Parameters:
      enabled - true to enable WebSocket support
    • isWebSocketEnabled

      public boolean isWebSocketEnabled()
      Returns true if WebSockets are enabled.
      Returns:
      true if WebSockets are enabled
    • getWebSocketMaxTextMessageSize

      public int getWebSocketMaxTextMessageSize()
      Returns:
      the WebSocket maxTextMessageSize
    • setWebSocketMaxTextMessageSize

      public void setWebSocketMaxTextMessageSize(int webSocketMaxTextMessageSize)
      Sets the WebSocket maxTextMessageSize.
      Parameters:
      webSocketMaxTextMessageSize - the new value
    • getWebSocketMaxTextMessageBufferSize

      public int getWebSocketMaxTextMessageBufferSize()
      Returns:
      the WebSocket maxTextMessageBufferSize
    • setWebSocketMaxTextMessageBufferSize

      public void setWebSocketMaxTextMessageBufferSize(int webSocketMaxTextMessageBufferSize)
      Sets the WebSocket maxTextMessageBufferSize.
      Parameters:
      webSocketMaxTextMessageBufferSize - the new value
    • getWebSocketMaxBinaryMessageSize

      public int getWebSocketMaxBinaryMessageSize()
      Returns:
      the WebSocket maxTextMessageSize
    • setWebSocketMaxBinaryMessageSize

      public void setWebSocketMaxBinaryMessageSize(int webSocketMaxBinaryMessageSize)
      Sets the WebSocket maxBinaryMessageSize.
      Parameters:
      webSocketMaxBinaryMessageSize - the new value
    • getWebSocketMaxBinaryMessageBufferSize

      public int getWebSocketMaxBinaryMessageBufferSize()
      Returns:
      the WebSocket maxBinaryMessageBufferSize
    • setWebSocketMaxBinaryMessageBufferSize

      public void setWebSocketMaxBinaryMessageBufferSize(int webSocketMaxBinaryMessageBufferSize)
      Sets the WebSocket maxBinaryMessageBufferSize.
      Parameters:
      webSocketMaxBinaryMessageBufferSize - the new value
    • setFetchPolyfillEnabled

      public void setFetchPolyfillEnabled(boolean enabled)
      Sets whether or not fetch polyfill should be used.
      Parameters:
      enabled - true to enable fetch polyfill
    • isFetchPolyfillEnabled

      public boolean isFetchPolyfillEnabled()
      Returns:
      true if the fetch api polyfill is enabled
    • setGeolocationEnabled

      public void setGeolocationEnabled(boolean enabled)
      Enables/disables Geolocation support. By default, this property is disabled.
      Parameters:
      enabled - true to enable Geolocation support
    • isGeolocationEnabled

      public boolean isGeolocationEnabled()
      Returns:
      true if Geolocation is enabled
    • getGeolocation

      public WebClientOptions.Geolocation getGeolocation()
      Returns:
      the WebClientOptions.Geolocation
    • setGeolocation

      public void setGeolocation(WebClientOptions.Geolocation geolocation)
      Sets the WebClientOptions.Geolocation to be used.
      Parameters:
      geolocation - the new location or null
    • setFileProtocolForXMLHttpRequestsAllowed

      public void setFileProtocolForXMLHttpRequestsAllowed(boolean fileProtocolForXMLHttpRequestsAllowed)
      If set to true, the client will accept XMLHttpRequests to URL's using the 'file' protocol. Allowing this introduces security problems and is therefore not allowed by current browsers. But some browsers have special settings to open this door; therefore we have this option.
      Parameters:
      fileProtocolForXMLHttpRequestsAllowed - whether or not allow (local) file access
    • isFileProtocolForXMLHttpRequestsAllowed

      public boolean isFileProtocolForXMLHttpRequestsAllowed()
      Indicates if the client will accept XMLHttpRequests to URL's using the 'file' protocol.
      Returns:
      true if access to local files is allowed.