Package jakarta.ws.rs.client
Interface Invocation.Builder
- All Superinterfaces:
SyncInvoker
- Enclosing interface:
- Invocation
A client request invocation builder.
The builder, obtained via a call to one of the
request(...) methods on a resource target,
provides methods for preparing a client request invocation. Once the request is prepared the invocation builder can
be either used to build an Invocation with a generic execution interface:
Client client = ClientBuilder.newClient();
WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
// Build a HTTP GET request that accepts "text/plain" response type
// and contains a custom HTTP header entry "Foo: bar".
Invocation invocation = resourceTarget.request("text/plain")
.header("Foo", "bar").buildGet();
// Invoke the request using generic interface
String response = invocation.invoke(String.class);
Alternatively, one of the inherited synchronous invocation methods can be used to invoke the
prepared request and return the server response in a single step, e.g.:
Client client = ClientBuilder.newClient();
WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
// Build and invoke the get request in a single step
String response = resourceTarget.request("text/plain")
.header("Foo", "bar").get(String.class);
Once the request is fully prepared for invoking, switching to an asynchronous invocation mode is
possible by calling the async() method on the builder, e.g.:
Client client = ClientBuilder.newClient();
WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
// Build and invoke the get request asynchronously in a single step
Future<String> response = resourceTarget.request("text/plain")
.header("Foo", "bar").async().get(String.class);
-
Method Summary
Modifier and TypeMethodDescriptionAdd the accepted response media types.Add the accepted response media types.acceptEncoding(String... encodings) Add acceptable encodings.acceptLanguage(String... locales) Add acceptable languages.acceptLanguage(Locale... locales) Add acceptable languages.async()Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.Build a request invocation using an arbitrary request method name.Build a request invocation using an arbitrary request method name and request entity.Build a DELETE request invocation.buildGet()Build a GET request invocation.Build a POST request invocation.Build a PUT request invocation.cacheControl(CacheControl cacheControl) Set the cache control data of the message.Add a cookie to be set.Add a cookie to be set.Add an arbitrary header.headers(MultivaluedMap<String, Object> headers) Replaces all existing headers with the newly supplied headers.Set a new property in the context of a request represented by this invocation builder.rx()Access the default reactive invoker based onCompletionStage.<T extends RxInvoker>
TAccess a reactive invoker based on aRxInvokersubclass provider.
-
Method Details
-
build
Build a request invocation using an arbitrary request method name.- Parameters:
method- request method name.- Returns:
- invocation encapsulating the built request.
-
build
Build a request invocation using an arbitrary request method name and request entity.- Parameters:
method- request method name.entity- request entity, including it's fullVariantinformation. Any variant-related HTTP headers previously set (namelyContent-Type,Content-LanguageandContent-Encoding) will be overwritten using the entity variant information.- Returns:
- invocation encapsulating the built request.
-
buildGet
Invocation buildGet()Build a GET request invocation.- Returns:
- invocation encapsulating the built GET request.
-
buildDelete
Invocation buildDelete()Build a DELETE request invocation.- Returns:
- invocation encapsulating the built DELETE request.
-
buildPost
Build a POST request invocation.- Parameters:
entity- request entity, including it's fullVariantinformation. Any variant-related HTTP headers previously set (namelyContent-Type,Content-LanguageandContent-Encoding) will be overwritten using the entity variant information.- Returns:
- invocation encapsulating the built POST request.
-
buildPut
Build a PUT request invocation.- Parameters:
entity- request entity, including it's fullVariantinformation. Any variant-related HTTP headers previously set (namelyContent-Type,Content-LanguageandContent-Encoding) will be overwritten using the entity variant information.- Returns:
- invocation encapsulating the built PUT request.
-
async
AsyncInvoker async()Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.- Returns:
- asynchronous uniform request invocation interface.
-
accept
Add the accepted response media types.- Parameters:
mediaTypes- accepted response media types.- Returns:
- the updated builder.
-
accept
Add the accepted response media types.- Parameters:
mediaTypes- accepted response media types.- Returns:
- the updated builder.
-
acceptLanguage
Add acceptable languages.- Parameters:
locales- an array of the acceptable languages.- Returns:
- the updated builder.
-
acceptLanguage
Add acceptable languages.- Parameters:
locales- an array of the acceptable languages.- Returns:
- the updated builder.
-
acceptEncoding
Add acceptable encodings.- Parameters:
encodings- an array of the acceptable encodings.- Returns:
- the updated builder.
-
cookie
Add a cookie to be set.- Parameters:
cookie- to be set.- Returns:
- the updated builder.
-
cookie
Add a cookie to be set.- Parameters:
name- the name of the cookie.value- the value of the cookie.- Returns:
- the updated builder.
-
cacheControl
Set the cache control data of the message.- Parameters:
cacheControl- the cache control directives, ifnullany existing cache control directives will be removed.- Returns:
- the updated builder.
-
header
Add an arbitrary header.- Parameters:
name- the name of the headervalue- the value of the header, the header will be serialized using aRuntimeDelegate.HeaderDelegateif one is available viaRuntimeDelegate.createHeaderDelegate(java.lang.Class)for the class ofvalueor using itstoStringmethod if a header delegate is not available. Ifvalueisnullthen all current headers of the same name will be removed.- Returns:
- the updated builder.
-
headers
Replaces all existing headers with the newly supplied headers.- Parameters:
headers- new headers to be set, ifnullall existing headers will be removed.- Returns:
- the updated builder.
-
property
Set a new property in the context of a request represented by this invocation builder.The property is available for a later retrieval via
ClientRequestContext.getProperty(String)orInterceptorContext.getProperty(String). If a property with a given name is already set in the request context, the existing value of the property will be updated. Setting anullvalue into a property effectively removes the property from the request property bag.- Parameters:
name- property name.value- (new) property value.nullvalue removes the property with the given name.- Returns:
- the updated builder.
- See Also:
-
rx
Access the default reactive invoker based onCompletionStage.- Returns:
- default reactive invoker instance.
- Since:
- 2.1
- See Also:
-
rx
Access a reactive invoker based on aRxInvokersubclass provider. Note that correspondingRxInvokerProvidermust be registered in the client runtime.This method is an extension point for JAX-RS implementations to support other types representing asynchronous computations.
- Type Parameters:
T- generic invoker type.- Parameters:
clazz-RxInvokersubclass.- Returns:
- reactive invoker instance.
- Throws:
IllegalStateException- when provider for given class is not registered.- Since:
- 2.1
- See Also:
-