Module io.helidon.webclient.api
Package io.helidon.webclient.api
Class ClientRequestBase<T extends ClientRequest<T>,R extends HttpClientResponse> 
java.lang.Object
io.helidon.webclient.api.ClientRequestBase<T,R> 
- Type Parameters:
- T- type of the request
- R- type of the response
- All Implemented Interfaces:
- ClientRequest<T>,- FullClientRequest<T>
- Direct Known Subclasses:
- HttpClientRequest
public abstract class ClientRequestBase<T extends ClientRequest<T>,R extends HttpClientResponse> 
extends Object
implements FullClientRequest<T>
Abstract base implementation of an HTTP client. Provides helpful methods to handle cookies, client services etc.
- 
Nested Class SummaryNested classes/interfaces inherited from interface io.helidon.webclient.api.ClientRequestClientRequest.OutputStreamHandler
- 
Field SummaryFields
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedClientRequestBase(HttpClientConfig clientConfig, WebClientCookieManager cookieManager, String protocolId, Method method, ClientUri clientUri, Boolean sendExpectContinue, Map<String, String> properties) protectedClientRequestBase(HttpClientConfig clientConfig, WebClientCookieManager cookieManager, String protocolId, Method method, ClientUri clientUri, Map<String, String> properties) 
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidAppend additional headers before sending the request.protected HttpClientConfigAssociated client configuration.Possible explicit connection to use (such as when using a proxy).connection(ClientConnection connection) This method is for explicit connection use by this request.protected abstract RdoOutputStream(ClientRequest.OutputStreamHandler outputStreamHandler) protected abstract RbooleanWhether to follow redirects.followRedirects(boolean followRedirects) Whether to follow redirects.fragment(UriFragment fragment) Set fragment of the URI.Set an HTTP header.headers()Get a (mutable) instance of outgoing headers.Configure headers.headers(Consumer<ClientRequestHeaders> headersConsumer) Update headers.protected WebClientServiceResponseinvokeServices(WebClientService.Chain httpCallChain, CompletableFuture<WebClientServiceRequest> whenSent, CompletableFuture<WebClientServiceResponse> whenComplete, ClientUri usedUri) Invoke configured client services.booleanWhether to use keep-alive connection (if relevant for the used HTTP version).keepAlive(boolean keepAlive) Whether to use keep alive with this request.intMaximal number of redirects to follow.maxRedirects(int maxRedirects) Max number of the followed redirects.protected MediaContextMedia context configured for this request.method()HTTP method to be invoked.outputStream(ClientRequest.OutputStreamHandler outputStreamConsumer) Handle output stream and submit the request.Configure path to call.Replace a placeholder in URI with an actual value.Replace a placeholder in URI with an actual value.Properties configured by a user or by other components.Add a property to be used by this request.proxy()Proxy configuration (may be no-proxy).Proxy configuration for this specific request.queryParam(String name, String... values) Add query parameter.Read 100-Continue timeout.readContinueTimeout(Duration readContinueTimeout) Read 100-Continue timeout for this request.Read timeout.readTimeout(Duration readTimeout) Read timeout for this request.request()Request without an entity.Request ID.Resolved URI that will be used to invoke this request.protected ClientUriresolveUri(ClientUri toResolve) Resolve possible templated URI definition against the providedClientUri, extracting possible query information into the provided writable query.Whether Expect 100-Continue header is sent to verify server availability before sending an entity.sendExpectContinue(boolean sendExpectContinue) Whether Expect 100-Continue header is sent to verify server availability before sending an entity.booleanWhether to skip URI encoding.skipUriEncoding(boolean skip) Disable uri encoding.Submit an entity.tls()TLS configuration (may be disabled - e.g.TLS configuration for this specific request.uri()URI of this request.Configure request URI.Configure URI.Configure URI.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.webclient.api.ClientRequestaccept, accept, contentType, fragment, header, header, outputStream, request, requestEntity, submit
- 
Field Details- 
USER_AGENT_HEADERHelidon user agent request header.
- 
PROXY_CONNECTIONProxy connection header.
 
- 
- 
Constructor Details- 
ClientRequestBaseprotected ClientRequestBase(HttpClientConfig clientConfig, WebClientCookieManager cookieManager, String protocolId, Method method, ClientUri clientUri, Map<String, String> properties) 
- 
ClientRequestBaseprotected ClientRequestBase(HttpClientConfig clientConfig, WebClientCookieManager cookieManager, String protocolId, Method method, ClientUri clientUri, Boolean sendExpectContinue, Map<String, String> properties) 
 
- 
- 
Method Details- 
tlsDescription copied from interface:ClientRequestTLS configuration for this specific request.- Specified by:
- tlsin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- tls- tls configuration
- Returns:
- updated request
 
- 
uriDescription copied from interface:ClientRequestConfigure URI.- Specified by:
- uriin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- uri- uri to resolve against base URI, or to use if absolute
- Returns:
- updated request
 
- 
uriDescription copied from interface:ClientRequestConfigure request URI. This always replaces the existing URI (even if base URI is configured).- Specified by:
- uriin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- uri- uri to resolve against base URI, or to use if absolute
- Returns:
- updated request
 
- 
pathDescription copied from interface:ClientRequestConfigure path to call.- Specified by:
- pathin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- uri- path
- Returns:
- updated request
 
- 
uriDescription copied from interface:ClientRequestConfigure URI.- Specified by:
- uriin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- uri- uri to resolve against base URI, or to use if absolute
- Returns:
- updated request
 
- 
resolvedUriDescription copied from interface:ClientRequestResolved URI that will be used to invoke this request.- Specified by:
- resolvedUriin interface- ClientRequest<T extends ClientRequest<T>>
- Returns:
- URI to invoke
 
- 
headersDescription copied from interface:ClientRequestGet a (mutable) instance of outgoing headers.- Specified by:
- headersin interface- ClientRequest<T extends ClientRequest<T>>
- Returns:
- client request headers
 
- 
headerDescription copied from interface:ClientRequestSet an HTTP header.- Specified by:
- headerin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- header- header to set
- Returns:
- updated request
 
- 
headersDescription copied from interface:ClientRequestConfigure headers. Copy all headers from suppliedHeadersinstance.- Specified by:
- headersin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- headers- to copy
- Returns:
- updated request
 
- 
headersDescription copied from interface:ClientRequestUpdate headers.- Specified by:
- headersin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- headersConsumer- consumer of client request headers
- Returns:
- updated request
 
- 
fragmentDescription copied from interface:ClientRequestSet fragment of the URI.- Specified by:
- fragmentin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- fragment- fragment
- Returns:
- updated request
 
- 
skipUriEncodingDescription copied from interface:ClientRequestDisable uri encoding.- Specified by:
- skipUriEncodingin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- skip- set to- trueto disable URI encoding (- falseby default)
- Returns:
- updated client request
 
- 
queryParamDescription copied from interface:ClientRequestAdd query parameter.- Specified by:
- queryParamin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- name- name of parameter
- values- value(s) of parameter
- Returns:
- updated request
 
- 
propertyDescription copied from interface:ClientRequestAdd a property to be used by this request.- Specified by:
- propertyin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- propertyName- property name
- propertyValue- property value
- Returns:
- updated builder instance
 
- 
pathParamDescription copied from interface:ClientRequestReplace a placeholder in URI with an actual value.- Specified by:
- pathParamin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- name- name of parameter
- value- value of parameter
- Returns:
- updated request
 
- 
followRedirectsDescription copied from interface:ClientRequestWhether to follow redirects.- Specified by:
- followRedirectsin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- followRedirects- follow redirects
- Returns:
- updated request
 
- 
maxRedirectsDescription copied from interface:ClientRequestMax number of the followed redirects.- Specified by:
- maxRedirectsin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- maxRedirects- max followed redirects
- Returns:
- updated request
 
- 
connectionDescription copied from interface:ClientRequestThis method is for explicit connection use by this request.- Specified by:
- connectionin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- connection- connection to use for this request
- Returns:
- updated client request
 
- 
keepAliveDescription copied from interface:ClientRequestWhether to use keep alive with this request.- Specified by:
- keepAlivein interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- keepAlive- use keep alive
- Returns:
- updated client request
 
- 
readTimeoutDescription copied from interface:ClientRequestRead timeout for this request.- Specified by:
- readTimeoutin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- readTimeout- response read timeout
- Returns:
- updated client request
 
- 
readContinueTimeoutDescription copied from interface:ClientRequestRead 100-Continue timeout for this request. This read timeout is used when 100-Continue is sent by the client, before it sends an entity.- Specified by:
- readContinueTimeoutin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- readContinueTimeout- read 100-Continue timeout duration
- Returns:
- updated client request
- See Also:
 
- 
proxyDescription copied from interface:ClientRequestProxy configuration for this specific request.- Specified by:
- proxyin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- proxy- proxy configuration
- Returns:
- updated request
 
- 
requestDescription copied from interface:ClientRequestRequest without an entity.- Specified by:
- requestin interface- ClientRequest<T extends ClientRequest<T>>
- Returns:
- response
 
- 
submitDescription copied from interface:ClientRequestSubmit an entity.- Specified by:
- submitin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- entity- request entity
- Returns:
- response
 
- 
outputStreamDescription copied from interface:ClientRequestHandle output stream and submit the request.- Specified by:
- outputStreamin interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- outputStreamConsumer- output stream to write request entity
- Returns:
- response
 
- 
sendExpectContinueDescription copied from interface:ClientRequestWhether Expect 100-Continue header is sent to verify server availability before sending an entity. Can be used to override the setting inherited fromHttpClientConfig.sendExpectContinue()on a per-request basis.- Specified by:
- sendExpectContinuein interface- ClientRequest<T extends ClientRequest<T>>
- Parameters:
- sendExpectContinue- value to override behavior for a single request
- Returns:
- updated client request
 
- 
additionalHeadersprotected void additionalHeaders()Append additional headers before sending the request.
- 
methodHTTP method to be invoked.- Specified by:
- methodin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- HTTP method
 
- 
propertiesProperties configured by a user or by other components.- Specified by:
- propertiesin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- properties
 
- 
followRedirectspublic boolean followRedirects()Description copied from interface:ClientRequestWhether to follow redirects.- Specified by:
- followRedirectsin interface- ClientRequest<T extends ClientRequest<T>>
- Returns:
- follow redirects
 
- 
maxRedirectspublic int maxRedirects()Description copied from interface:ClientRequestMaximal number of redirects to follow. This is to prevent infinite redirects.- Specified by:
- maxRedirectsin interface- ClientRequest<T extends ClientRequest<T>>
- Returns:
- max number of redirects
 
- 
tlsDescription copied from interface:FullClientRequestTLS configuration (may be disabled - e.g. use plaintext).- Specified by:
- tlsin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- TLS configuration
 
- 
proxyDescription copied from interface:FullClientRequestProxy configuration (may be no-proxy).- Specified by:
- proxyin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- proxy
 
- 
connectionDescription copied from interface:FullClientRequestPossible explicit connection to use (such as when using a proxy).- Specified by:
- connectionin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- client connection if explicitly defined
 
- 
pathParamsDescription copied from interface:FullClientRequestReplace a placeholder in URI with an actual value.- Specified by:
- pathParamsin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- a map of path parameters
 
- 
uriDescription copied from interface:FullClientRequestURI of this request.- Specified by:
- uriin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- client URI
 
- 
requestIdDescription copied from interface:FullClientRequestRequest ID.- Specified by:
- requestIdin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- id of this request
 
- 
readTimeoutDescription copied from interface:FullClientRequestRead timeout.- Specified by:
- readTimeoutin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- read timeout of this request
 
- 
readContinueTimeoutDescription copied from interface:FullClientRequestRead 100-Continue timeout.- Specified by:
- readContinueTimeoutin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- read 100-Continue timeout of this request
 
- 
keepAlivepublic boolean keepAlive()Description copied from interface:FullClientRequestWhether to use keep-alive connection (if relevant for the used HTTP version).- Specified by:
- keepAlivein interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- whether to use keep alive
 
- 
skipUriEncodingpublic boolean skipUriEncoding()Description copied from interface:FullClientRequestWhether to skip URI encoding.- Specified by:
- skipUriEncodingin interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- whether to skip encoding
 
- 
sendExpectContinueDescription copied from interface:FullClientRequestWhether Expect 100-Continue header is sent to verify server availability before sending an entity. Overrides the setting fromHttpClientConfig.sendExpectContinue().- Specified by:
- sendExpectContinuein interface- FullClientRequest<T extends ClientRequest<T>>
- Returns:
- Expect 100-Continue value if set
 
- 
doSubmit
- 
doOutputStream
- 
invokeServicesprotected WebClientServiceResponse invokeServices(WebClientService.Chain httpCallChain, CompletableFuture<WebClientServiceRequest> whenSent, CompletableFuture<WebClientServiceResponse> whenComplete, ClientUri usedUri) Invoke configured client services.- Parameters:
- httpCallChain- invocation of the HTTP request (the actual network call)
- whenSent- completable future to be completed when the request is sent over the network
- whenComplete- completable future to be completed when the request/response interaction finishes
- usedUri- URI configured on the request, combined with the base URI of the client
- Returns:
- web client service response
 
- 
clientConfigAssociated client configuration.- Returns:
- client config
 
- 
mediaContextMedia context configured for this request.- Returns:
- media context
 
- 
resolveUriResolve possible templated URI definition against the providedClientUri, extracting possible query information into the provided writable query.- Parameters:
- toResolve- client uri to update from the template
- Returns:
- updated client uri
 
 
-