Class HttpClientOptions

Direct Known Subclasses:
HttpSenderOptions, WebClientOptions

public class HttpClientOptions extends ClientOptionsBase
Options describing how an HttpClient will make connections.
Author:
Tim Fox
  • Field Details

    • DEFAULT_HTTP2_MULTIPLEXING_LIMIT

      public static final int DEFAULT_HTTP2_MULTIPLEXING_LIMIT
      The default maximum number of concurrent streams per connection for HTTP/2 = -1
      See Also:
    • DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE

      public static final int DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE
      The default connection window size for HTTP/2 = -1
      See Also:
    • DEFAULT_HTTP2_KEEP_ALIVE_TIMEOUT

      public static final int DEFAULT_HTTP2_KEEP_ALIVE_TIMEOUT
      The default keep alive timeout for HTTP/2 connection can send = 60 seconds
      See Also:
    • DEFAULT_KEEP_ALIVE

      public static final boolean DEFAULT_KEEP_ALIVE
      Default value of whether keep-alive is enabled = true
      See Also:
    • DEFAULT_PIPELINING

      public static final boolean DEFAULT_PIPELINING
      Default value of whether pipe-lining is enabled = false
      See Also:
    • DEFAULT_PIPELINING_LIMIT

      public static final int DEFAULT_PIPELINING_LIMIT
      The default maximum number of requests an HTTP/1.1 pipe-lined connection can send = 10
      See Also:
    • DEFAULT_KEEP_ALIVE_TIMEOUT

      public static final int DEFAULT_KEEP_ALIVE_TIMEOUT
      The default keep alive timeout for HTTP/1.1 connection can send = 60 seconds
      See Also:
    • DEFAULT_DECOMPRESSION_SUPPORTED

      public static final boolean DEFAULT_DECOMPRESSION_SUPPORTED
      Whether the client should send requests with an accepting-encoding header set to a compression algorithm by default = false
      See Also:
    • DEFAULT_VERIFY_HOST

      public static final boolean DEFAULT_VERIFY_HOST
      Default value of whether hostname verification (for SSL/TLS) is enabled = true
      See Also:
    • DEFAULT_DEFAULT_HOST

      public static final String DEFAULT_DEFAULT_HOST
      The default value for host name = "localhost"
      See Also:
    • DEFAULT_DEFAULT_PORT

      public static final int DEFAULT_DEFAULT_PORT
      The default value for port = 80
      See Also:
    • DEFAULT_PROTOCOL_VERSION

      public static final HttpVersion DEFAULT_PROTOCOL_VERSION
      The default protocol version = HTTP/1.1
    • DEFAULT_MAX_CHUNK_SIZE

      public static final int DEFAULT_MAX_CHUNK_SIZE
      Default max HTTP chunk size = 8192
      See Also:
    • DEFAULT_MAX_INITIAL_LINE_LENGTH

      public static final int DEFAULT_MAX_INITIAL_LINE_LENGTH
      Default max length of the initial line (e.g. "HTTP/1.1 200 OK") = 4096
      See Also:
    • DEFAULT_MAX_HEADER_SIZE

      public static final int DEFAULT_MAX_HEADER_SIZE
      Default max length of all headers = 8192
      See Also:
    • DEFAULT_ALPN_VERSIONS

      public static final List<HttpVersion> DEFAULT_ALPN_VERSIONS
      Default Application-Layer Protocol Negotiation versions = [] (automatic according to protocol version)
    • DEFAULT_HTTP2_CLEAR_TEXT_UPGRADE

      public static final boolean DEFAULT_HTTP2_CLEAR_TEXT_UPGRADE
      Default using HTTP/1.1 upgrade for establishing an h2C connection = true
      See Also:
    • DEFAULT_HTTP2_CLEAR_TEXT_UPGRADE_WITH_PREFLIGHT_REQUEST

      public static final boolean DEFAULT_HTTP2_CLEAR_TEXT_UPGRADE_WITH_PREFLIGHT_REQUEST
      Default to use a preflight OPTIONS request for h2C without prior knowledge connection = false
      See Also:
    • DEFAULT_HTTP2_UPGRADE_MAX_CONTENT_LENGTH

      public static final int DEFAULT_HTTP2_UPGRADE_MAX_CONTENT_LENGTH
      Default maximum length of the aggregated content in bytes
      See Also:
    • DEFAULT_MAX_REDIRECTS

      public static final int DEFAULT_MAX_REDIRECTS
      See Also:
    • DEFAULT_FORCE_SNI

      public static final boolean DEFAULT_FORCE_SNI
      See Also:
    • DEFAULT_DECODER_INITIAL_BUFFER_SIZE

      public static final int DEFAULT_DECODER_INITIAL_BUFFER_SIZE
      Default initial buffer size for HttpObjectDecoder = 128 bytes
      See Also:
    • DEFAULT_TRACING_POLICY

      public static final TracingPolicy DEFAULT_TRACING_POLICY
      Default tracing control = TracingPolicy.PROPAGATE
    • DEFAULT_SHARED

      public static final boolean DEFAULT_SHARED
      Default shared client = false
      See Also:
    • DEFAULT_NAME

      public static final String DEFAULT_NAME
      Actual name of anonymous shared client = __vertx.DEFAULT
      See Also:
    • DEFAULT_HTTP_2_MULTIPLEX_IMPLEMENTATION

      public static final boolean DEFAULT_HTTP_2_MULTIPLEX_IMPLEMENTATION
      Use HTTP/2 multiplex implementation = false
      See Also:
    • DEFAULT_FOLLOW_ALTERNATIVE_SERVICES

      public static final boolean DEFAULT_FOLLOW_ALTERNATIVE_SERVICES
      Follow alternative service server advertisements = false
      See Also:
  • Constructor Details

    • HttpClientOptions

      public HttpClientOptions()
      Default constructor
    • HttpClientOptions

      public HttpClientOptions(ClientOptionsBase other)
      Copy constructor
      Parameters:
      other - the options to copy
    • HttpClientOptions

      public HttpClientOptions(HttpClientOptions other)
      Copy constructor
      Parameters:
      other - the options to copy
    • HttpClientOptions

      public HttpClientOptions(JsonObject json)
      Constructor to create an options from JSON
      Parameters:
      json - the JSON
  • Method Details

    • toJson

      public JsonObject toJson()
      Convert to JSON
      Overrides:
      toJson in class ClientOptionsBase
      Returns:
      the JSON
    • getHttp1Config

      public Http1ClientConfig getHttp1Config()
    • getHttp2Config

      public Http2ClientConfig getHttp2Config()
    • createSSLOptions

      protected ClientSSLOptions createSSLOptions()
      Overrides:
      createSSLOptions in class ClientOptionsBase
    • setSendBufferSize

      public HttpClientOptions setSendBufferSize(int sendBufferSize)
      Description copied from class: NetworkOptions
      Set the TCP send buffer size
      Overrides:
      setSendBufferSize in class ClientOptionsBase
      Parameters:
      sendBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReceiveBufferSize

      public HttpClientOptions setReceiveBufferSize(int receiveBufferSize)
      Description copied from class: NetworkOptions
      Set the TCP receive buffer size
      Overrides:
      setReceiveBufferSize in class ClientOptionsBase
      Parameters:
      receiveBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReuseAddress

      public HttpClientOptions setReuseAddress(boolean reuseAddress)
      Description copied from class: NetworkOptions
      Set the value of reuse address
      Overrides:
      setReuseAddress in class ClientOptionsBase
      Parameters:
      reuseAddress - the value of reuse address
      Returns:
      a reference to this, so the API can be used fluently
    • setReusePort

      public HttpClientOptions setReusePort(boolean reusePort)
      Description copied from class: NetworkOptions
      Set the value of reuse port.

      This is only supported by native transports.

      Overrides:
      setReusePort in class ClientOptionsBase
      Parameters:
      reusePort - the value of reuse port
      Returns:
      a reference to this, so the API can be used fluently
    • setTrafficClass

      public HttpClientOptions setTrafficClass(int trafficClass)
      Description copied from class: NetworkOptions
      Set the value of traffic class
      Overrides:
      setTrafficClass in class ClientOptionsBase
      Parameters:
      trafficClass - the value of traffic class
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpNoDelay

      public HttpClientOptions setTcpNoDelay(boolean tcpNoDelay)
      Description copied from class: TCPSSLOptions
      Set whether TCP no delay is enabled
      Overrides:
      setTcpNoDelay in class ClientOptionsBase
      Parameters:
      tcpNoDelay - true if TCP no delay is enabled (Nagle disabled)
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpKeepAlive

      public HttpClientOptions setTcpKeepAlive(boolean tcpKeepAlive)
      Description copied from class: TCPSSLOptions
      Set whether TCP keep alive is enabled
      Overrides:
      setTcpKeepAlive in class ClientOptionsBase
      Parameters:
      tcpKeepAlive - true if TCP keep alive is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setSoLinger

      public HttpClientOptions setSoLinger(int soLinger)
      Description copied from class: TCPSSLOptions
      Set whether SO_linger keep alive is enabled
      Overrides:
      setSoLinger in class ClientOptionsBase
      Parameters:
      soLinger - true if SO_linger is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeout

      public HttpClientOptions setIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received nor sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setIdleTimeout in class ClientOptionsBase
      Parameters:
      idleTimeout - the timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setReadIdleTimeout

      public HttpClientOptions setReadIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the read idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setReadIdleTimeout in class ClientOptionsBase
      Parameters:
      idleTimeout - the read timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setWriteIdleTimeout

      public HttpClientOptions setWriteIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the write idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setWriteIdleTimeout in class ClientOptionsBase
      Parameters:
      idleTimeout - the write timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeoutUnit

      public HttpClientOptions setIdleTimeoutUnit(TimeUnit idleTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the idle timeout unit. If not specified, default is seconds.
      Overrides:
      setIdleTimeoutUnit in class ClientOptionsBase
      Parameters:
      idleTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • setSsl

      public HttpClientOptions setSsl(boolean ssl)
      Description copied from class: TCPSSLOptions
      Set whether SSL/TLS is enabled
      Overrides:
      setSsl in class ClientOptionsBase
      Parameters:
      ssl - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setKeyCertOptions

      public HttpClientOptions setKeyCertOptions(KeyCertOptions options)
      Description copied from class: TCPSSLOptions
      Set the key/cert options.
      Overrides:
      setKeyCertOptions in class ClientOptionsBase
      Parameters:
      options - the key store options
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustOptions

      public HttpClientOptions setTrustOptions(TrustOptions options)
      Description copied from class: TCPSSLOptions
      Set the trust options.
      Overrides:
      setTrustOptions in class ClientOptionsBase
      Parameters:
      options - the trust options
      Returns:
      a reference to this, so the API can be used fluently
    • addEnabledCipherSuite

      public HttpClientOptions addEnabledCipherSuite(String suite)
      Description copied from class: TCPSSLOptions
      Add an enabled cipher suite, appended to the ordered suites.
      Overrides:
      addEnabledCipherSuite in class ClientOptionsBase
      Parameters:
      suite - the suite
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • removeEnabledCipherSuite

      public HttpClientOptions removeEnabledCipherSuite(String suite)
      Description copied from class: TCPSSLOptions
      Removes an enabled cipher suite from the ordered suites.
      Overrides:
      removeEnabledCipherSuite in class ClientOptionsBase
      Parameters:
      suite - the suite
      Returns:
      a reference to this, so the API can be used fluently
    • addEnabledSecureTransportProtocol

      public HttpClientOptions addEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Add an enabled SSL/TLS protocols, appended to the ordered protocols.
      Overrides:
      addEnabledSecureTransportProtocol in class ClientOptionsBase
      Parameters:
      protocol - the SSL/TLS protocol to enable
      Returns:
      a reference to this, so the API can be used fluently
    • removeEnabledSecureTransportProtocol

      public HttpClientOptions removeEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Removes an enabled SSL/TLS protocol from the ordered protocols.
      Overrides:
      removeEnabledSecureTransportProtocol in class ClientOptionsBase
      Parameters:
      protocol - the SSL/TLS protocol to disable
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpFastOpen

      public HttpClientOptions setTcpFastOpen(boolean tcpFastOpen)
      Description copied from class: TCPSSLOptions
      Enable the TCP_FASTOPEN option - only with linux native transport.
      Overrides:
      setTcpFastOpen in class ClientOptionsBase
      Parameters:
      tcpFastOpen - the fast open value
    • setTcpCork

      public HttpClientOptions setTcpCork(boolean tcpCork)
      Description copied from class: TCPSSLOptions
      Enable the TCP_CORK option - only with linux native transport.
      Overrides:
      setTcpCork in class ClientOptionsBase
      Parameters:
      tcpCork - the cork value
    • setTcpQuickAck

      public HttpClientOptions setTcpQuickAck(boolean tcpQuickAck)
      Description copied from class: TCPSSLOptions
      Enable the TCP_QUICKACK option - only with linux native transport.
      Overrides:
      setTcpQuickAck in class ClientOptionsBase
      Parameters:
      tcpQuickAck - the quick ack value
    • setTcpUserTimeout

      public HttpClientOptions setTcpUserTimeout(int tcpUserTimeout)
      Description copied from class: TCPSSLOptions
      Sets the TCP_USER_TIMEOUT option - only with linux native transport.
      Overrides:
      setTcpUserTimeout in class ClientOptionsBase
      Parameters:
      tcpUserTimeout - the tcp user timeout value
    • addCrlPath

      public HttpClientOptions addCrlPath(String crlPath) throws NullPointerException
      Description copied from class: TCPSSLOptions
      Add a CRL path
      Overrides:
      addCrlPath in class ClientOptionsBase
      Parameters:
      crlPath - the path
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • addCrlValue

      public HttpClientOptions addCrlValue(Buffer crlValue) throws NullPointerException
      Description copied from class: TCPSSLOptions
      Add a CRL value
      Overrides:
      addCrlValue in class ClientOptionsBase
      Parameters:
      crlValue - the value
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • setConnectTimeout

      public HttpClientOptions setConnectTimeout(int connectTimeout)
      Description copied from class: ClientOptionsBase
      Set the connect timeout
      Overrides:
      setConnectTimeout in class ClientOptionsBase
      Parameters:
      connectTimeout - connect timeout, in ms
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustAll

      public HttpClientOptions setTrustAll(boolean trustAll)
      Description copied from class: ClientOptionsBase
      Set whether all server certificates should be trusted
      Overrides:
      setTrustAll in class ClientOptionsBase
      Parameters:
      trustAll - true if all should be trusted
      Returns:
      a reference to this, so the API can be used fluently
    • setEnabledSecureTransportProtocols

      public HttpClientOptions setEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols)
      Description copied from class: TCPSSLOptions
      Sets the list of enabled SSL/TLS protocols.
      Overrides:
      setEnabledSecureTransportProtocols in class TCPSSLOptions
      Parameters:
      enabledSecureTransportProtocols - the SSL/TLS protocols to enable
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeout

      public HttpClientOptions setSslHandshakeTimeout(long sslHandshakeTimeout)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout, default time unit is seconds.
      Overrides:
      setSslHandshakeTimeout in class TCPSSLOptions
      Parameters:
      sslHandshakeTimeout - the SSL handshake timeout to set, in milliseconds
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeoutUnit

      public HttpClientOptions setSslHandshakeTimeoutUnit(TimeUnit sslHandshakeTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout unit. If not specified, default is seconds.
      Overrides:
      setSslHandshakeTimeoutUnit in class TCPSSLOptions
      Parameters:
      sslHandshakeTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • getHttp2MultiplexingLimit

      public int getHttp2MultiplexingLimit()
      Returns:
      the maximum number of concurrent streams for an HTTP/2 connection, -1 means the value sent by the server
    • setHttp2MultiplexingLimit

      public HttpClientOptions setHttp2MultiplexingLimit(int limit)
      Set a client limit of the number concurrent streams for each HTTP/2 connection, this limits the number of streams the client can create for a connection. The effective number of streams for a connection is the min of this value and the server's initial settings.

      Setting the value to -1 means to use the value sent by the server's initial settings. -1 is the default value.

      Parameters:
      limit - the maximum concurrent for an HTTP/2 connection
      Returns:
      a reference to this, so the API can be used fluently
    • getHttp2ConnectionWindowSize

      public int getHttp2ConnectionWindowSize()
      Returns:
      the default HTTP/2 connection window size
    • setHttp2ConnectionWindowSize

      public HttpClientOptions setHttp2ConnectionWindowSize(int http2ConnectionWindowSize)
      Set the default HTTP/2 connection window size. It overrides the initial window size set by Http2Settings.getInitialWindowSize(), so the connection window size is greater than for its streams, in order the data throughput.

      A value of -1 reuses the initial window size setting.

      Parameters:
      http2ConnectionWindowSize - the window size applied to the connection
      Returns:
      a reference to this, so the API can be used fluently
    • getHttp2KeepAliveTimeout

      public int getHttp2KeepAliveTimeout()
      Returns:
      the keep alive timeout value in seconds for HTTP/2 connections
    • setHttp2KeepAliveTimeout

      public HttpClientOptions setHttp2KeepAliveTimeout(int keepAliveTimeout)
      Set the keep alive timeout for HTTP/2 connections, in seconds.

      This value determines how long a connection remains unused in the pool before being evicted and closed.

      A timeout of 0 means there is no timeout.

      Parameters:
      keepAliveTimeout - the timeout, in seconds
      Returns:
      a reference to this, so the API can be used fluently
    • getHttp2UpgradeMaxContentLength

      public int getHttp2UpgradeMaxContentLength()
      Returns:
      the HTTP/2 upgrade maximum length of the aggregated content in bytes
    • setHttp2UpgradeMaxContentLength

      public HttpClientOptions setHttp2UpgradeMaxContentLength(int http2UpgradeMaxContentLength)
      Set the HTTP/2 upgrade maximum length of the aggregated content in bytes. This is only taken into account when
      invalid @link
      {@link HttpClientOptions#isHttp2ClearTextUpgradeWithPreflightRequest)
      } is set to false (which is the default). When isHttp2ClearTextUpgradeWithPreflightRequest() is true, then the client makes a preflight OPTIONS request and the upgrade will not send a body, voiding the requirements.
      Parameters:
      http2UpgradeMaxContentLength - the length, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • getHttp2MultiplexImplementation

      public boolean getHttp2MultiplexImplementation()
      Returns:
      whether to use the HTTP/2 implementation based on multiplexed channel
    • setHttp2MultiplexImplementation

      public HttpClientOptions setHttp2MultiplexImplementation(boolean http2MultiplexImplementation)
      Set which HTTP/2 implementation to use
      Parameters:
      http2MultiplexImplementation - whether to use the HTTP/2 multiplex implementation
      Returns:
      a reference to this, so the API can be used fluently
    • isKeepAlive

      public boolean isKeepAlive()
      Is keep alive enabled on the client?
      Returns:
      true if enabled
    • setKeepAlive

      public HttpClientOptions setKeepAlive(boolean keepAlive)
      Set whether keep alive is enabled on the client
      Parameters:
      keepAlive - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • getKeepAliveTimeout

      public int getKeepAliveTimeout()
      Returns:
      the keep alive timeout value in seconds for HTTP/1.x connections
    • setKeepAliveTimeout

      public HttpClientOptions setKeepAliveTimeout(int keepAliveTimeout)
      Set the keep alive timeout for HTTP/1.x, in seconds.

      This value determines how long a connection remains unused in the pool before being evicted and closed.

      A timeout of 0 means there is no timeout.

      Parameters:
      keepAliveTimeout - the timeout, in seconds
      Returns:
      a reference to this, so the API can be used fluently
    • isPipelining

      public boolean isPipelining()
      Is pipe-lining enabled on the client
      Returns:
      true if pipe-lining is enabled
    • setPipelining

      public HttpClientOptions setPipelining(boolean pipelining)
      Set whether pipe-lining is enabled on the client
      Parameters:
      pipelining - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • getPipeliningLimit

      public int getPipeliningLimit()
      Returns:
      the limit of pending requests a pipe-lined HTTP/1 connection can send
    • setPipeliningLimit

      public HttpClientOptions setPipeliningLimit(int limit)
      Set the limit of pending requests a pipe-lined HTTP/1 connection can send.
      Parameters:
      limit - the limit of pending requests
      Returns:
      a reference to this, so the API can be used fluently
    • isVerifyHost

      public boolean isVerifyHost()
      Is hostname verification (for SSL/TLS) enabled?
      Returns:
      true if enabled
    • setVerifyHost

      public HttpClientOptions setVerifyHost(boolean verifyHost)
      Set whether hostname verification is enabled
      Parameters:
      verifyHost - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • isDecompressionSupported

      public boolean isDecompressionSupported()
      Returns:
      true if the client should send requests with an accepting-encoding header set to a compression algorithm, false otherwise
    • setDecompressionSupported

      public HttpClientOptions setDecompressionSupported(boolean decompressionSupported)
      Whether the client should send requests with an accepting-encoding header set to a compression algorithm.
      Parameters:
      decompressionSupported - true if the client should send a request with an accepting-encoding header set to a compression algorithm, false otherwise
      Returns:
      a reference to this, so the API can be used fluently
    • getDefaultHost

      public String getDefaultHost()
      Get the default host name to be used by this client in requests if none is provided when making the request.
      Returns:
      the default host name
    • setDefaultHost

      public HttpClientOptions setDefaultHost(String defaultHost)
      Set the default host name to be used by this client in requests if none is provided when making the request.
      Returns:
      a reference to this, so the API can be used fluently
    • getDefaultPort

      public int getDefaultPort()
      Get the default port to be used by this client in requests if none is provided when making the request.
      Returns:
      the default port
    • setDefaultPort

      public HttpClientOptions setDefaultPort(int defaultPort)
      Set the default port to be used by this client in requests if none is provided when making the request.
      Returns:
      a reference to this, so the API can be used fluently
    • getProtocolVersion

      public HttpVersion getProtocolVersion()
      Get the protocol version.
      Returns:
      the protocol version
    • setProtocolVersion

      public HttpClientOptions setProtocolVersion(HttpVersion protocolVersion)
      Set the protocol version.
      Parameters:
      protocolVersion - the protocol version
      Returns:
      a reference to this, so the API can be used fluently
    • setMaxChunkSize

      public HttpClientOptions setMaxChunkSize(int maxChunkSize)
      Set the maximum HTTP chunk size
      Parameters:
      maxChunkSize - the maximum chunk size
      Returns:
      a reference to this, so the API can be used fluently
    • getMaxChunkSize

      public int getMaxChunkSize()
      Returns the maximum HTTP chunk size
      Returns:
      the maximum HTTP chunk size
    • getMaxInitialLineLength

      public int getMaxInitialLineLength()
      Returns:
      the maximum length of the initial line for HTTP/1.x (e.g. "GET / HTTP/1.0")
    • setMaxInitialLineLength

      public HttpClientOptions setMaxInitialLineLength(int maxInitialLineLength)
      Set the maximum length of the initial line for HTTP/1.x (e.g. "HTTP/1.1 200 OK")
      Parameters:
      maxInitialLineLength - the new maximum initial length
      Returns:
      a reference to this, so the API can be used fluently
    • getMaxHeaderSize

      public int getMaxHeaderSize()
      Returns:
      Returns the maximum length of all headers for HTTP/1.x
    • setMaxHeaderSize

      public HttpClientOptions setMaxHeaderSize(int maxHeaderSize)
      Set the maximum length of all headers for HTTP/1.x .
      Parameters:
      maxHeaderSize - the new maximum length
      Returns:
      a reference to this, so the API can be used fluently
    • getInitialSettings

      public Http2Settings getInitialSettings()
      Returns:
      the initial HTTP/2 connection settings
    • setInitialSettings

      public HttpClientOptions setInitialSettings(Http2Settings settings)
      Set the HTTP/2 connection settings immediately sent by to the server when the client connects.
      Parameters:
      settings - the settings value
      Returns:
      a reference to this, so the API can be used fluently
    • setUseAlpn

      public HttpClientOptions setUseAlpn(boolean useAlpn)
      Description copied from class: TCPSSLOptions
      Set the ALPN usage.
      Overrides:
      setUseAlpn in class ClientOptionsBase
      Parameters:
      useAlpn - true when Application-Layer Protocol Negotiation should be used
    • setSslEngineOptions

      public HttpClientOptions setSslEngineOptions(SSLEngineOptions sslEngineOptions)
      Description copied from class: TCPSSLOptions
      Set to use SSL engine implementation to use.
      Overrides:
      setSslEngineOptions in class ClientOptionsBase
      Parameters:
      sslEngineOptions - the ssl engine to use
      Returns:
      a reference to this, so the API can be used fluently
    • getAlpnVersions

      public List<HttpVersion> getAlpnVersions()
      Returns:
      the list of protocol versions to provide during the Application-Layer Protocol Negotiation. When the list is empty, the client provides a best effort list according to setProtocolVersion(HttpVersion)
    • setAlpnVersions

      public HttpClientOptions setAlpnVersions(List<HttpVersion> alpnVersions)
      Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiation. When the list is empty, the client makes a best effort list according to setProtocolVersion(HttpVersion):
      Parameters:
      alpnVersions - the versions
      Returns:
      a reference to this, so the API can be used fluently
    • isHttp2ClearTextUpgrade

      public boolean isHttp2ClearTextUpgrade()
      Returns:
      true when an h2c connection is established using an HTTP/1.1 upgrade request, false when directly
    • setHttp2ClearTextUpgrade

      public HttpClientOptions setHttp2ClearTextUpgrade(boolean value)
      Set to true when an h2c connection is established using an HTTP/1.1 upgrade request, and false when an h2c connection is established directly (with prior knowledge).
      Parameters:
      value - the upgrade value
      Returns:
      a reference to this, so the API can be used fluently
    • isHttp2ClearTextUpgradeWithPreflightRequest

      public boolean isHttp2ClearTextUpgradeWithPreflightRequest()
      Returns:
      true when an h2c connection established using an HTTP/1.1 upgrade request should perform a preflight OPTIONS request to the origin server to establish the h2c connection
    • setHttp2ClearTextUpgradeWithPreflightRequest

      public HttpClientOptions setHttp2ClearTextUpgradeWithPreflightRequest(boolean value)
      Set to true when an h2c connection established using an HTTP/1.1 upgrade request should perform a preflight OPTIONS request to the origin server to establish the h2c connection.
      Parameters:
      value - the upgrade value
      Returns:
      a reference to this, so the API can be used fluently
    • getMaxRedirects

      public int getMaxRedirects()
      Returns:
      the maximum number of redirection a request can follow
    • setMaxRedirects

      public HttpClientOptions setMaxRedirects(int maxRedirects)
      Set to maxRedirects the maximum number of redirection a request can follow.
      Parameters:
      maxRedirects - the maximum number of redirection
      Returns:
      a reference to this, so the API can be used fluently
    • isForceSni

      public boolean isForceSni()
      Returns:
      whether the client should always use SNI on TLS/SSL connections
    • setForceSni

      public HttpClientOptions setForceSni(boolean forceSni)
      By default, the server name is only sent for Fully Qualified Domain Name (FQDN), setting this property to true forces the server name to be always sent.
      Parameters:
      forceSni - true when the client should always use SNI on TLS/SSL connections
      Returns:
      a reference to this, so the API can be used fluently
    • setMetricsName

      public HttpClientOptions setMetricsName(String metricsName)
      Description copied from class: ClientOptionsBase
      Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.
      Overrides:
      setMetricsName in class ClientOptionsBase
      Parameters:
      metricsName - the metrics name
      Returns:
      a reference to this, so the API can be used fluently
    • setProxyOptions

      public HttpClientOptions setProxyOptions(ProxyOptions proxyOptions)
      Description copied from class: ClientOptionsBase
      Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
      Overrides:
      setProxyOptions in class ClientOptionsBase
      Parameters:
      proxyOptions - proxy options object
      Returns:
      a reference to this, so the API can be used fluently
    • setNonProxyHosts

      public HttpClientOptions setNonProxyHosts(List<String> nonProxyHosts)
      Description copied from class: ClientOptionsBase
      Set a list of remote hosts that are not proxied when the client is configured to use a proxy. This list serves the same purpose than the JVM nonProxyHosts configuration.

      Entries can use the * wildcard character for pattern matching, e.g *.example.com matches www.example.com.

      Overrides:
      setNonProxyHosts in class ClientOptionsBase
      Parameters:
      nonProxyHosts - the list of non proxies hosts
      Returns:
      a reference to this, so the API can be used fluently
    • addNonProxyHost

      public HttpClientOptions addNonProxyHost(String nonProxyHost)
      Description copied from class: ClientOptionsBase
      Add a host to the ClientOptionsBase.getNonProxyHosts() list.
      Overrides:
      addNonProxyHost in class ClientOptionsBase
      Parameters:
      nonProxyHost - the added host
      Returns:
      a reference to this, so the API can be used fluently
    • setLocalAddress

      public HttpClientOptions setLocalAddress(String localAddress)
      Description copied from class: ClientOptionsBase
      Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.
      Overrides:
      setLocalAddress in class ClientOptionsBase
      Parameters:
      localAddress - the local address
      Returns:
      a reference to this, so the API can be used fluently
    • setLogActivity

      public HttpClientOptions setLogActivity(boolean logEnabled)
      Description copied from class: NetworkOptions
      Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
      Overrides:
      setLogActivity in class ClientOptionsBase
      Parameters:
      logEnabled - true for logging the network activity
      Returns:
      a reference to this, so the API can be used fluently
    • setActivityLogDataFormat

      public HttpClientOptions setActivityLogDataFormat(ByteBufFormat activityLogDataFormat)
      Description copied from class: NetworkOptions
      Set the value of Netty's logging handler's data format: Netty's pipeline is configured for logging on Netty's logger.
      Overrides:
      setActivityLogDataFormat in class ClientOptionsBase
      Parameters:
      activityLogDataFormat - the format to use
      Returns:
      a reference to this, so the API can be used fluently
    • getDecoderInitialBufferSize

      public int getDecoderInitialBufferSize()
      Returns:
      the initial buffer size for the HTTP decoder
    • setDecoderInitialBufferSize

      public HttpClientOptions setDecoderInitialBufferSize(int decoderInitialBufferSize)
      set to initialBufferSizeHttpDecoder the initial buffer of the HttpDecoder.
      Parameters:
      decoderInitialBufferSize - the initial buffer size
      Returns:
      a reference to this, so the API can be used fluently
    • getTracingPolicy

      public TracingPolicy getTracingPolicy()
      Returns:
      the tracing policy
    • setTracingPolicy

      public HttpClientOptions setTracingPolicy(TracingPolicy tracingPolicy)
      Set the tracing policy for the client behavior when Vert.x has tracing enabled.
      Parameters:
      tracingPolicy - the tracing policy
      Returns:
      a reference to this, so the API can be used fluently
    • isShared

      public boolean isShared()
      Returns:
      whether the pool is shared
    • setShared

      public HttpClientOptions setShared(boolean shared)
      Set to true to share the client.

      There can be multiple shared clients distinguished by getName(), when no specific name is set, the DEFAULT_NAME is used.

      Parameters:
      shared - true to use a shared client
      Returns:
      a reference to this, so the API can be used fluently
    • getName

      public String getName()
      Returns:
      the client name used for sharing
    • setName

      public HttpClientOptions setName(String name)
      Set the client name, used when the client is shared, otherwise ignored.
      Parameters:
      name - the new name
      Returns:
      a reference to this, so the API can be used fluently
    • getFollowAlternativeServices

      @Unstable public boolean getFollowAlternativeServices()
      Returns:
      whether the client follows alternative services advertisements
    • setFollowAlternativeServices

      public HttpClientOptions setFollowAlternativeServices(boolean followAlternativeServices)

      Configure whether the client follows alternative services advertisements, the default setting does not.

      Setting this to true, instructs the client to use most appropriate alternative services advertised by HTTP servers.

      The client only follows alternative services it can trust for a given origin, in practice this means this only the https scheme is supported and alternatives handshake uses the alternative origin.

      Parameters:
      followAlternativeServices - the config value