public static interface Invocation.Builder extends SyncInvoker
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);
| Modifier and Type | Method and Description |
|---|---|
Invocation.Builder |
accept(MediaType... mediaTypes)
Add the accepted response media types.
|
Invocation.Builder |
accept(String... mediaTypes)
Add the accepted response media types.
|
Invocation.Builder |
acceptEncoding(String... encodings)
Add acceptable encodings.
|
Invocation.Builder |
acceptLanguage(Locale... locales)
Add acceptable languages.
|
Invocation.Builder |
acceptLanguage(String... locales)
Add acceptable languages.
|
AsyncInvoker |
async()
Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.
|
Invocation |
build(String method)
Build a request invocation using an arbitrary request method name.
|
Invocation |
build(String method,
Entity<?> entity)
Build a request invocation using an arbitrary request method name and request entity.
|
Invocation |
buildDelete()
Build a DELETE request invocation.
|
Invocation |
buildGet()
Build a GET request invocation.
|
Invocation |
buildPost(Entity<?> entity)
Build a POST request invocation.
|
Invocation |
buildPut(Entity<?> entity)
Build a PUT request invocation.
|
Invocation.Builder |
cacheControl(CacheControl cacheControl)
Set the cache control data of the message.
|
Invocation.Builder |
cookie(Cookie cookie)
Add a cookie to be set.
|
Invocation.Builder |
cookie(String name,
String value)
Add a cookie to be set.
|
Invocation.Builder |
header(String name,
Object value)
Add an arbitrary header.
|
Invocation.Builder |
headers(MultivaluedMap<String,Object> headers)
Replaces all existing headers with the newly supplied headers.
|
Invocation.Builder |
property(String name,
Object value)
Set a new property in the context of a request represented by this invocation builder.
|
CompletionStageRxInvoker |
rx()
Access the default reactive invoker based on
CompletionStage. |
<T extends RxInvoker> |
rx(Class<T> clazz)
Access a reactive invoker based on a
RxInvoker subclass provider. |
Invocation build(String method)
method - request method name.Invocation build(String method, Entity<?> entity)
method - request method name.entity - request entity, including it's full Variant information. Any variant-related
HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
be overwritten using the entity variant information.Invocation buildGet()
Invocation buildDelete()
Invocation buildPost(Entity<?> entity)
entity - request entity, including it's full Variant information. Any variant-related
HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
be overwritten using the entity variant information.Invocation buildPut(Entity<?> entity)
entity - request entity, including it's full Variant information. Any variant-related
HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
be overwritten using the entity variant information.AsyncInvoker async()
Invocation.Builder accept(String... mediaTypes)
mediaTypes - accepted response media types.Invocation.Builder accept(MediaType... mediaTypes)
mediaTypes - accepted response media types.Invocation.Builder acceptLanguage(Locale... locales)
locales - an array of the acceptable languages.Invocation.Builder acceptLanguage(String... locales)
locales - an array of the acceptable languages.Invocation.Builder acceptEncoding(String... encodings)
encodings - an array of the acceptable encodings.Invocation.Builder cookie(Cookie cookie)
cookie - to be set.Invocation.Builder cookie(String name, String value)
name - the name of the cookie.value - the value of the cookie.Invocation.Builder cacheControl(CacheControl cacheControl)
cacheControl - the cache control directives, if null any existing cache control directives will be
removed.Invocation.Builder header(String name, Object value)
name - the name of the headervalue - the value of the header, the header will be serialized using a
RuntimeDelegate.HeaderDelegate if one is available via
RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the class of value or using
its toString method if a header delegate is not available. If value is null then all current
headers of the same name will be removed.Invocation.Builder headers(MultivaluedMap<String,Object> headers)
headers - new headers to be set, if null all existing headers will be removed.Invocation.Builder property(String name, Object value)
The property is available for a later retrieval via ClientRequestContext.getProperty(String) or
InterceptorContext.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 a null value into a property
effectively removes the property from the request property bag.
name - property name.value - (new) property value. null value removes the property with the given name.Invocation.property(String, Object)CompletionStageRxInvoker rx()
CompletionStage.rx(Class)<T extends RxInvoker> T rx(Class<T> clazz)
RxInvoker subclass provider. Note that corresponding
RxInvokerProvider must be registered in the client runtime.
This method is an extension point for JAX-RS implementations to support other types representing asynchronous computations.
T - generic invoker type.clazz - RxInvoker subclass.IllegalStateException - when provider for given class is not registered.Configurable.register(Class)Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.