SyncInvokerpublic 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 response = resourceTarget.request("text/plain")
.header("Foo", "bar").async().get(String.class);
| Modifier and Type | Method | Description |
|---|---|---|
Invocation.Builder |
accept(String... mediaTypes) |
Add the accepted response media types.
|
Invocation.Builder |
accept(MediaType... mediaTypes) |
Add the accepted response media types.
|
Invocation.Builder |
acceptEncoding(String... encodings) |
Add acceptable encodings.
|
Invocation.Builder |
acceptLanguage(String... locales) |
Add acceptable languages.
|
Invocation.Builder |
acceptLanguage(Locale... 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(String name,
String value) |
Add a cookie to be set.
|
Invocation.Builder |
cookie(Cookie cookie) |
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 implementations to support other types representing asynchronous computations.
clazz - RxInvoker subclass.IllegalStateException - when provider for given class is not registered.Configurable.register(Class)Copyright (c) 2019 Eclipse Foundation. Licensed under Eclipse Foundation Specification License.