- All Superinterfaces:
HttpConfigBase
,Prototype.Api
- All Known Subinterfaces:
GrpcClientConfig
,io.helidon.webclient.grpc.GrpcClientConfigBlueprint
,Http1ClientConfig
,io.helidon.webclient.http1.Http1ClientConfigBlueprint
,Http2ClientConfig
,io.helidon.webclient.http2.Http2ClientConfigBlueprint
,JsonRpcClientConfig
,io.helidon.webclient.jsonrpc.JsonRpcClientConfigBlueprint
,WebClientConfig
,WsClientConfig
,io.helidon.webclient.websocket.WsClientConfigBlueprint
- All Known Implementing Classes:
GrpcClientConfig.BuilderBase.GrpcClientConfigImpl
,Http1ClientConfig.BuilderBase.Http1ClientConfigImpl
,Http2ClientConfig.BuilderBase.Http2ClientConfigImpl
,HttpClientConfig.BuilderBase.HttpClientConfigImpl
,JsonRpcClientConfig.BuilderBase.JsonRpcClientConfigImpl
,WebClientConfig.BuilderBase.WebClientConfigImpl
,WsClientConfig.BuilderBase.WsClientConfigImpl
This can be used by any HTTP client version, and does not act as a factory, for easy extensibility.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
Fluent API builder forHttpClientConfig
.static class
HttpClientConfig.BuilderBase<BUILDER extends HttpClientConfig.BuilderBase<BUILDER,
PROTOTYPE>, PROTOTYPE extends HttpClientConfig> Fluent API builder base forHttpClientConfig
. -
Method Summary
Modifier and TypeMethodDescriptionBase fragment used by the client in all requests (unless overwritten on per-request basis).Base query used by the client in all requests.baseUri()
Base uri used by the client in all requests.static HttpClientConfig.Builder
builder()
Create a new fluent API builder to customize configuration.static HttpClientConfig.Builder
builder
(HttpClientConfig instance) Create a new fluent API builder from an existing instance.int
Maximal size of the connection cache.Configure the listener specificContentEncodingContext
.WebClient cookie manager.static HttpClientConfig
create()
Create a new instance with default values.static HttpClientConfig
Deprecated.static HttpClientConfig
Create a new instance from configuration.Default headers to be used in every request from configuration.default ClientRequestHeaders
Default headers as a headers object.DNS address lookup preferences to be used by this client.DNS resolver to be used by this client.executor()
Client executor service.headers()
Default headers to be used in every request.int
If the entity is expected to be smaller that this number of bytes, it would be buffered in memory to optimize performance.Configure the listener specificMediaContext
.Media supports (manually added).Configure media type parsing mode for HTTPContent-Type
header.Socket 100-Continue read timeout.boolean
Can be set totrue
to force the use of relative URIs in all requests, regardless of the presence or absence of proxies or no-proxy lists.boolean
Whether Expect-100-Continue header is sent to verify server availability before sending an entity.services()
WebClient services.boolean
Whether to share connection cache between all the WebClient instances in JVM.Socket options for connections opened by this client.int
Buffer size used when writing data to the underlying socket on a client TCP connection.Methods inherited from interface io.helidon.webclient.api.HttpConfigBase
connectTimeout, followRedirects, keepAlive, maxRedirects, properties, proxy, readTimeout, tls
-
Method Details
-
builder
Create a new fluent API builder to customize configuration.- Returns:
- a new builder
-
builder
Create a new fluent API builder from an existing instance.- Parameters:
instance
- an existing instance used as a base for the builder- Returns:
- a builder based on an instance
-
create
Create a new instance from configuration.- Parameters:
config
- used to configure the new instance- Returns:
- a new instance configured from configuration
-
create
Deprecated.Create a new instance from configuration.- Parameters:
config
- used to configure the new instance- Returns:
- a new instance configured from configuration
-
create
Create a new instance with default values.- Returns:
- a new instance
-
baseUri
Base uri used by the client in all requests.- Returns:
- base uri of the client requests
-
baseQuery
Base query used by the client in all requests.- Returns:
- base query of the client requests
-
baseFragment
Optional<UriFragment> baseFragment()Base fragment used by the client in all requests (unless overwritten on per-request basis).- Returns:
- fragment to use
-
socketOptions
SocketOptions socketOptions()Socket options for connections opened by this client. If there is a value explicitly configured on this type and on the socket options, the one configured on this type's builder will win:- Returns:
- socket options
-
dnsResolver
DnsResolver dnsResolver()DNS resolver to be used by this client.- Returns:
- dns resolver
-
dnsAddressLookup
DnsAddressLookup dnsAddressLookup()DNS address lookup preferences to be used by this client. Default value is determined by capabilities of the system.- Returns:
- dns address lookup strategy
-
defaultHeadersMap
Default headers to be used in every request from configuration.- Returns:
- default headers
-
headers
Default headers to be used in every request.- Returns:
- default headers
-
mediaTypeParserMode
ParserMode mediaTypeParserMode()Configure media type parsing mode for HTTPContent-Type
header.- Returns:
- media type parsing mode
-
contentEncoding
ContentEncodingContext contentEncoding()Configure the listener specificContentEncodingContext
. This method discards all previously registered ContentEncodingContext. If no content encoding context is registered, default encoding context is used.- Returns:
- content encoding context
-
mediaContext
MediaContext mediaContext()Configure the listener specificMediaContext
. This method discards all previously registered MediaContext. If no media context is registered, default media context is used.- Returns:
- media context
-
mediaSupports
List<MediaSupport> mediaSupports()Media supports (manually added). If bothmediaContext()
and this is configured, there will be a new context created from return of this method, with fallback ofmediaContext()
.- Returns:
- list of explicitly added media supports
-
services
List<WebClientService> services()WebClient services.- Returns:
- services to use with this web client
-
relativeUris
boolean relativeUris()Can be set totrue
to force the use of relative URIs in all requests, regardless of the presence or absence of proxies or no-proxy lists.- Returns:
- relative URIs flag
-
executor
ExecutorService executor()Client executor service.- Returns:
- executor service to use when needed (such as for HTTP/2)
-
sendExpectContinue
boolean sendExpectContinue()Whether Expect-100-Continue header is sent to verify server availability before sending an entity.Defaults to
true
.- Returns:
- whether Expect:100-Continue header should be sent on streamed transfers
-
connectionCacheSize
int connectionCacheSize()Maximal size of the connection cache. For most HTTP protocols, we may cache connections to various endpoints for keep alive (or stream reuse in case of HTTP/2). This option limits the size. Setting this number lower than the "usual" number of target services will cause connections to be closed and reopened frequently. -
cookieManager
Optional<WebClientCookieManager> cookieManager()WebClient cookie manager.- Returns:
- cookie manager to use
-
readContinueTimeout
Duration readContinueTimeout()Socket 100-Continue read timeout. Default is 1 second. This read timeout is used when 100-Continue is sent by the client, before it sends an entity.- Returns:
- read 100-Continue timeout duration
-
maxInMemoryEntity
int maxInMemoryEntity()If the entity is expected to be smaller that this number of bytes, it would be buffered in memory to optimize performance. If bigger, streaming will be used.Note that for some entity types we cannot use streaming, as they are already fully in memory (String, byte[]), for such cases, this option is ignored. Default is 128Kb.
- Returns:
- maximal number of bytes to buffer in memory for supported writers
-
writeBufferSize
int writeBufferSize()Buffer size used when writing data to the underlying socket on a client TCP connection. A value that is less or equal to 1 can be set to disable buffering at this level. Note that if writing data to the socket in small chunks, they may not be delivered to the network immediately due to Nagle's algorithm (i.e., if TCP_NO_DELAY is turned off).- Returns:
- number of bytes in write buffer
-
defaultRequestHeaders
Default headers as a headers object. Creates a new instance for each call, so the returned value can be safely mutated.- Returns:
- default headers
-
create(io.helidon.config.Config)