Interface RestOperations
- All Known Implementing Classes:
RestTemplate
Implemented by RestTemplate
. Not often used directly, but a useful
option to enhance testability, as it can easily be mocked or stubbed.
- Since:
- 3.0
- Author:
- Arjen Poutsma, Juergen Hoeller
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Delete the resources at the specified URI.void
Delete the resources at the specified URI.void
Delete the resources at the specified URL.<T> ResponseEntity<T>
exchange
(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables) Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Map<String, ?> uriVariables) Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Object... uriVariables) Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Map<String, ?> uriVariables) Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(URI url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType) Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(URI url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(RequestEntity<?> requestEntity, Class<T> responseType) Execute the request specified in the givenRequestEntity
and return the response asResponseEntity
.<T> ResponseEntity<T>
exchange
(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) Execute the request specified in the givenRequestEntity
and return the response asResponseEntity
.<T> T
execute
(String uriTemplate, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Object... uriVariables) Execute the HTTP method to the given URI template, preparing the request with theRequestCallback
, and reading the response with aResponseExtractor
.<T> T
execute
(String uriTemplate, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Map<String, ?> uriVariables) Execute the HTTP method to the given URI template, preparing the request with theRequestCallback
, and reading the response with aResponseExtractor
.<T> T
execute
(URI url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor) Execute the HTTP method to the given URL, preparing the request with theRequestCallback
, and reading the response with aResponseExtractor
.<T> ResponseEntity<T>
getForEntity
(String url, Class<T> responseType, Object... uriVariables) Retrieve an entity by doing a GET on the specified URL.<T> ResponseEntity<T>
getForEntity
(String url, Class<T> responseType, Map<String, ?> uriVariables) Retrieve a representation by doing a GET on the URI template.<T> ResponseEntity<T>
getForEntity
(URI url, Class<T> responseType) Retrieve a representation by doing a GET on the URL.<T> T
getForObject
(String url, Class<T> responseType, Object... uriVariables) Retrieve a representation by doing a GET on the specified URL.<T> T
getForObject
(String url, Class<T> responseType, Map<String, ?> uriVariables) Retrieve a representation by doing a GET on the URI template.<T> T
getForObject
(URI url, Class<T> responseType) Retrieve a representation by doing a GET on the URL.headForHeaders
(String url, Object... uriVariables) Retrieve all headers of the resource specified by the URI template.headForHeaders
(String url, Map<String, ?> uriVariables) Retrieve all headers of the resource specified by the URI template.headForHeaders
(URI url) Retrieve all headers of the resource specified by the URL.optionsForAllow
(String url, Object... uriVariables) Return the value of theAllow
header for the given URI.optionsForAllow
(String url, Map<String, ?> uriVariables) Return the value of theAllow
header for the given URI.optionsForAllow
(URI url) Return the value of theAllow
header for the given URL.<T> T
patchForObject
(String url, Object request, Class<T> responseType, Object... uriVariables) Update a resource by PATCHing the given object to the URI template, and return the representation found in the response.<T> T
Update a resource by PATCHing the given object to the URI template, and return the representation found in the response.<T> T
patchForObject
(URI url, Object request, Class<T> responseType) Update a resource by PATCHing the given object to the URL, and return the representation found in the response.<T> ResponseEntity<T>
postForEntity
(String url, Object request, Class<T> responseType, Object... uriVariables) Create a new resource by POSTing the given object to the URI template, and return the response asResponseEntity
.<T> ResponseEntity<T>
Create a new resource by POSTing the given object to the URI template, and return the response asHttpEntity
.<T> ResponseEntity<T>
postForEntity
(URI url, Object request, Class<T> responseType) Create a new resource by POSTing the given object to the URL, and return the response asResponseEntity
.postForLocation
(String url, Object request, Object... uriVariables) Create a new resource by POSTing the given object to the URI template, and return the value of theLocation
header.postForLocation
(String url, Object request, Map<String, ?> uriVariables) Create a new resource by POSTing the given object to the URI template, and return the value of theLocation
header.postForLocation
(URI url, Object request) Create a new resource by POSTing the given object to the URL, and return the value of theLocation
header.<T> T
postForObject
(String url, Object request, Class<T> responseType, Object... uriVariables) Create a new resource by POSTing the given object to the URI template, and return the representation found in the response.<T> T
Create a new resource by POSTing the given object to the URI template, and return the representation found in the response.<T> T
postForObject
(URI url, Object request, Class<T> responseType) Create a new resource by POSTing the given object to the URL, and return the representation found in the response.void
Create or update a resource by PUTting the given object to the URI.void
Creates a new resource by PUTting the given object to URI template.void
Creates a new resource by PUTting the given object to URL.
-
Method Details
-
getForObject
@Nullable <T> T getForObject(String url, Class<T> responseType, Object... uriVariables) throws RestClientException Retrieve a representation by doing a GET on the specified URL. The response (if any) is converted and returned.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLresponseType
- the type of the return valueuriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
-
getForObject
@Nullable <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionRetrieve a representation by doing a GET on the URI template. The response (if any) is converted and returned.URI Template variables are expanded using the given map.
- Parameters:
url
- the URLresponseType
- the type of the return valueuriVariables
- the map containing variables for the URI template- Returns:
- the converted object
- Throws:
RestClientException
-
getForObject
Retrieve a representation by doing a GET on the URL. The response (if any) is converted and returned.- Parameters:
url
- the URLresponseType
- the type of the return value- Returns:
- the converted object
- Throws:
RestClientException
-
getForEntity
<T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... uriVariables) throws RestClientException Retrieve an entity by doing a GET on the specified URL. The response is converted and stored in aResponseEntity
.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLresponseType
- the type of the return valueuriVariables
- the variables to expand the template- Returns:
- the entity
- Throws:
RestClientException
- Since:
- 3.0.2
-
getForEntity
<T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionRetrieve a representation by doing a GET on the URI template. The response is converted and stored in aResponseEntity
.URI Template variables are expanded using the given map.
- Parameters:
url
- the URLresponseType
- the type of the return valueuriVariables
- the map containing variables for the URI template- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 3.0.2
-
getForEntity
Retrieve a representation by doing a GET on the URL. The response is converted and stored in aResponseEntity
.- Parameters:
url
- the URLresponseType
- the type of the return value- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 3.0.2
-
headForHeaders
Retrieve all headers of the resource specified by the URI template.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLuriVariables
- the variables to expand the template- Returns:
- all HTTP headers of that resource
- Throws:
RestClientException
-
headForHeaders
Retrieve all headers of the resource specified by the URI template.URI Template variables are expanded using the given map.
- Parameters:
url
- the URLuriVariables
- the map containing variables for the URI template- Returns:
- all HTTP headers of that resource
- Throws:
RestClientException
-
headForHeaders
Retrieve all headers of the resource specified by the URL.- Parameters:
url
- the URL- Returns:
- all HTTP headers of that resource
- Throws:
RestClientException
-
postForLocation
@Nullable URI postForLocation(String url, @Nullable Object request, Object... uriVariables) throws RestClientException Create a new resource by POSTing the given object to the URI template, and return the value of theLocation
header. This header typically indicates where the new resource is stored.URI Template variables are expanded using the given URI variables, if any.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)uriVariables
- the variables to expand the template- Returns:
- the value for the
Location
header - Throws:
RestClientException
- See Also:
-
postForLocation
@Nullable URI postForLocation(String url, @Nullable Object request, Map<String, ?> uriVariables) throws RestClientExceptionCreate a new resource by POSTing the given object to the URI template, and return the value of theLocation
header. This header typically indicates where the new resource is stored.URI Template variables are expanded using the given map.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the requestThe body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)uriVariables
- the variables to expand the template- Returns:
- the value for the
Location
header - Throws:
RestClientException
- See Also:
-
postForLocation
Create a new resource by POSTing the given object to the URL, and return the value of theLocation
header. This header typically indicates where the new resource is stored.The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)- Returns:
- the value for the
Location
header - Throws:
RestClientException
- See Also:
-
postForObject
@Nullable <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables) throws RestClientException Create a new resource by POSTing the given object to the URI template, and return the representation found in the response.URI Template variables are expanded using the given URI variables, if any.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)responseType
- the type of the return valueuriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
- See Also:
-
postForObject
@Nullable <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionCreate a new resource by POSTing the given object to the URI template, and return the representation found in the response.URI Template variables are expanded using the given map.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)responseType
- the type of the return valueuriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
- See Also:
-
postForObject
@Nullable <T> T postForObject(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException Create a new resource by POSTing the given object to the URL, and return the representation found in the response.The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)responseType
- the type of the return value- Returns:
- the converted object
- Throws:
RestClientException
- See Also:
-
postForEntity
<T> ResponseEntity<T> postForEntity(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables) throws RestClientException Create a new resource by POSTing the given object to the URI template, and return the response asResponseEntity
.URI Template variables are expanded using the given URI variables, if any.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)uriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 3.0.2
- See Also:
-
postForEntity
<T> ResponseEntity<T> postForEntity(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionCreate a new resource by POSTing the given object to the URI template, and return the response asHttpEntity
.URI Template variables are expanded using the given map.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)uriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 3.0.2
- See Also:
-
postForEntity
<T> ResponseEntity<T> postForEntity(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException Create a new resource by POSTing the given object to the URL, and return the response asResponseEntity
.The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.The body of the entity, or
request
itself, can be aMultiValueMap
to create a multipart request. The values in theMultiValueMap
can be any Object representing the body of the part, or anHttpEntity
representing a part with body and headers.- Parameters:
url
- the URLrequest
- the Object to be POSTed (may benull
)- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 3.0.2
- See Also:
-
put
Create or update a resource by PUTting the given object to the URI.URI Template variables are expanded using the given URI variables, if any.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.- Parameters:
url
- the URLrequest
- the Object to be PUT (may benull
)uriVariables
- the variables to expand the template- Throws:
RestClientException
- See Also:
-
put
void put(String url, @Nullable Object request, Map<String, ?> uriVariables) throws RestClientExceptionCreates a new resource by PUTting the given object to URI template.URI Template variables are expanded using the given map.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.- Parameters:
url
- the URLrequest
- the Object to be PUT (may benull
)uriVariables
- the variables to expand the template- Throws:
RestClientException
- See Also:
-
put
Creates a new resource by PUTting the given object to URL.The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.- Parameters:
url
- the URLrequest
- the Object to be PUT (may benull
)- Throws:
RestClientException
- See Also:
-
patchForObject
@Nullable <T> T patchForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables) throws RestClientException Update a resource by PATCHing the given object to the URI template, and return the representation found in the response.URI Template variables are expanded using the given URI variables, if any.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.NOTE: The standard JDK HTTP library does not support HTTP PATCH. You need to use e.g. the Apache HttpComponents request factory.
- Parameters:
url
- the URLrequest
- the object to be PATCHed (may benull
)responseType
- the type of the return valueuriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 4.3.5
- See Also:
-
patchForObject
@Nullable <T> T patchForObject(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionUpdate a resource by PATCHing the given object to the URI template, and return the representation found in the response.URI Template variables are expanded using the given map.
The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.NOTE: The standard JDK HTTP library does not support HTTP PATCH. You need to use e.g. the Apache HttpComponents request factory.
- Parameters:
url
- the URLrequest
- the object to be PATCHed (may benull
)responseType
- the type of the return valueuriVariables
- the variables to expand the template- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 4.3.5
- See Also:
-
patchForObject
@Nullable <T> T patchForObject(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException Update a resource by PATCHing the given object to the URL, and return the representation found in the response.The
request
parameter can be aHttpEntity
in order to add additional HTTP headers to the request.NOTE: The standard JDK HTTP library does not support HTTP PATCH. You need to use e.g. the Apache HttpComponents request factory.
- Parameters:
url
- the URLrequest
- the object to be PATCHed (may benull
)responseType
- the type of the return value- Returns:
- the converted object
- Throws:
RestClientException
- Since:
- 4.3.5
- See Also:
-
delete
Delete the resources at the specified URI.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLuriVariables
- the variables to expand in the template- Throws:
RestClientException
-
delete
Delete the resources at the specified URI.URI Template variables are expanded using the given map.
- Parameters:
url
- the URLuriVariables
- the variables to expand the template- Throws:
RestClientException
-
delete
Delete the resources at the specified URL.- Parameters:
url
- the URL- Throws:
RestClientException
-
optionsForAllow
Return the value of theAllow
header for the given URI.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLuriVariables
- the variables to expand in the template- Returns:
- the value of the
Allow
header - Throws:
RestClientException
-
optionsForAllow
Return the value of theAllow
header for the given URI.URI Template variables are expanded using the given map.
- Parameters:
url
- the URLuriVariables
- the variables to expand in the template- Returns:
- the value of the
Allow
header - Throws:
RestClientException
-
optionsForAllow
Return the value of theAllow
header for the given URL.- Parameters:
url
- the URL- Returns:
- the value of the
Allow
header - Throws:
RestClientException
-
exchange
<T> ResponseEntity<T> exchange(String url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables) throws RestClientException Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestEntity
- the entity (headers and/or body) to write to the request may benull
)responseType
- the type to convert the response to, orVoid.class
for no bodyuriVariables
- the variables to expand in the template- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 3.0.2
-
exchange
<T> ResponseEntity<T> exchange(String url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionExecute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestEntity
- the entity (headers and/or body) to write to the request (may benull
)responseType
- the type to convert the response to, orVoid.class
for no bodyuriVariables
- the variables to expand in the template- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 3.0.2
-
exchange
<T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, Class<T> responseType) throws RestClientException Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
.- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestEntity
- the entity (headers and/or body) to write to the request (may benull
)responseType
- the type to convert the response to, orVoid.class
for no body- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 3.0.2
-
exchange
<T> ResponseEntity<T> exchange(String url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Object... uriVariables) throws RestClientException Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
. The givenParameterizedTypeReference
is used to pass generic type information:ParameterizedTypeReference<List<MyBean>> myBean = new ParameterizedTypeReference<List<MyBean>>() {}; ResponseEntity<List<MyBean>> response = template.exchange("https://example.com",HttpMethod.GET, null, myBean);
- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestEntity
- the entity (headers and/or body) to write to the request (may benull
)responseType
- the type to convert the response to, orVoid.class
for no bodyuriVariables
- the variables to expand in the template- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 3.2
-
exchange
<T> ResponseEntity<T> exchange(String url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Map<String, ?> uriVariables) throws RestClientExceptionExecute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
. The givenParameterizedTypeReference
is used to pass generic type information:ParameterizedTypeReference<List<MyBean>> myBean = new ParameterizedTypeReference<List<MyBean>>() {}; ResponseEntity<List<MyBean>> response = template.exchange("https://example.com",HttpMethod.GET, null, myBean);
- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestEntity
- the entity (headers and/or body) to write to the request (may benull
)responseType
- the type to convert the response to, orVoid.class
for no bodyuriVariables
- the variables to expand in the template- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 3.2
-
exchange
<T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) throws RestClientException Execute the HTTP method to the given URI template, writing the given request entity to the request, and return the response asResponseEntity
. The givenParameterizedTypeReference
is used to pass generic type information:ParameterizedTypeReference<List<MyBean>> myBean = new ParameterizedTypeReference<List<MyBean>>() {}; ResponseEntity<List<MyBean>> response = template.exchange("https://example.com",HttpMethod.GET, null, myBean);
- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestEntity
- the entity (headers and/or body) to write to the request (may benull
)responseType
- the type to convert the response to, orVoid.class
for no body- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 3.2
-
exchange
<T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, Class<T> responseType) throws RestClientException Execute the request specified in the givenRequestEntity
and return the response asResponseEntity
. Typically used in combination with the static builder methods onRequestEntity
, for instance:MyRequest body = ... RequestEntity request = RequestEntity .post(URI.create("https://example.com/foo")) .accept(MediaType.APPLICATION_JSON) .body(body); ResponseEntity<MyResponse> response = template.exchange(request, MyResponse.class);
- Parameters:
requestEntity
- the entity to write to the requestresponseType
- the type to convert the response to, orVoid.class
for no body- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 4.1
-
exchange
<T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) throws RestClientException Execute the request specified in the givenRequestEntity
and return the response asResponseEntity
. The givenParameterizedTypeReference
is used to pass generic type information:MyRequest body = ... RequestEntity request = RequestEntity .post(URI.create("https://example.com/foo")) .accept(MediaType.APPLICATION_JSON) .body(body); ParameterizedTypeReference<List<MyResponse>> myBean = new ParameterizedTypeReference<List<MyResponse>>() {}; ResponseEntity<List<MyResponse>> response = template.exchange(request, myBean);
- Parameters:
requestEntity
- the entity to write to the requestresponseType
- the type to convert the response to, orVoid.class
for no body- Returns:
- the response as entity
- Throws:
RestClientException
- Since:
- 4.1
-
execute
@Nullable <T> T execute(String uriTemplate, HttpMethod method, @Nullable RequestCallback requestCallback, @Nullable ResponseExtractor<T> responseExtractor, Object... uriVariables) throws RestClientException Execute the HTTP method to the given URI template, preparing the request with theRequestCallback
, and reading the response with aResponseExtractor
.URI Template variables are expanded using the given URI variables, if any.
- Parameters:
uriTemplate
- the URI templatemethod
- the HTTP method (GET, POST, etc)requestCallback
- object that prepares the requestresponseExtractor
- object that extracts the return value from the responseuriVariables
- the variables to expand in the template- Returns:
- an arbitrary object, as returned by the
ResponseExtractor
- Throws:
RestClientException
-
execute
@Nullable <T> T execute(String uriTemplate, HttpMethod method, @Nullable RequestCallback requestCallback, @Nullable ResponseExtractor<T> responseExtractor, Map<String, ?> uriVariables) throws RestClientExceptionExecute the HTTP method to the given URI template, preparing the request with theRequestCallback
, and reading the response with aResponseExtractor
.URI Template variables are expanded using the given URI variables map.
- Parameters:
uriTemplate
- the URI templatemethod
- the HTTP method (GET, POST, etc)requestCallback
- object that prepares the requestresponseExtractor
- object that extracts the return value from the responseuriVariables
- the variables to expand in the template- Returns:
- an arbitrary object, as returned by the
ResponseExtractor
- Throws:
RestClientException
-
execute
@Nullable <T> T execute(URI url, HttpMethod method, @Nullable RequestCallback requestCallback, @Nullable ResponseExtractor<T> responseExtractor) throws RestClientException Execute the HTTP method to the given URL, preparing the request with theRequestCallback
, and reading the response with aResponseExtractor
.- Parameters:
url
- the URLmethod
- the HTTP method (GET, POST, etc)requestCallback
- object that prepares the requestresponseExtractor
- object that extracts the return value from the response- Returns:
- an arbitrary object, as returned by the
ResponseExtractor
- Throws:
RestClientException
-