public class TestRestTemplate extends Object
RestTemplate that is suitable for integration tests.
They are fault tolerant, and optionally can carry Basic authentication headers. If
Apache Http Client 4.3.2 or better is available (recommended) it will be used as the
client, and by default configured to ignore cookies and redirects.
Note: To prevent injection problems this class intentionally does not extend
RestTemplate. If you need access to the underlying RestTemplate use
getRestTemplate().
If you are using the
@SpringBootTest annotation
with an embedded server, a TestRestTemplate is automatically available and can
be @Autowired into your test. If you need customizations (for example to adding
additional message converters) use a RestTemplateBuilder @Bean.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
TestRestTemplate.CustomHttpComponentsClientHttpRequestFactory
HttpComponentsClientHttpRequestFactory to apply customizations. |
static class |
TestRestTemplate.HttpClientOption
Options used to customize the Apache HTTP Client.
|
| Constructor and Description |
|---|
TestRestTemplate(RestTemplateBuilder restTemplateBuilder)
Create a new
TestRestTemplate instance. |
TestRestTemplate(RestTemplateBuilder builder,
String username,
String password,
TestRestTemplate.HttpClientOption... httpClientOptions)
Create a new
TestRestTemplate instance with the specified credentials. |
TestRestTemplate(String username,
String password,
TestRestTemplate.HttpClientOption... httpClientOptions)
Create a new
TestRestTemplate instance with the specified credentials. |
TestRestTemplate(TestRestTemplate.HttpClientOption... httpClientOptions)
Create a new
TestRestTemplate instance. |
| Modifier and Type | Method and Description |
|---|---|
void |
delete(String url,
Map<String,?> urlVariables)
Delete the resources at the specified URI.
|
void |
delete(String url,
Object... urlVariables)
Delete the resources at the specified URI.
|
void |
delete(URI url)
Delete the resources at the specified URL.
|
<T> ResponseEntity<T> |
exchange(RequestEntity<?> requestEntity,
Class<T> responseType)
Execute the request specified in the given
RequestEntity and return the
response as ResponseEntity. |
<T> ResponseEntity<T> |
exchange(RequestEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType)
Execute the request specified in the given
RequestEntity and return the
response as ResponseEntity. |
<T> ResponseEntity<T> |
exchange(String url,
HttpMethod method,
HttpEntity<?> requestEntity,
Class<T> responseType,
Map<String,?> urlVariables)
Execute the HTTP method to the given URI template, writing the given request entity
to the request, and returns the response as
ResponseEntity. |
<T> ResponseEntity<T> |
exchange(String url,
HttpMethod method,
HttpEntity<?> requestEntity,
Class<T> responseType,
Object... urlVariables)
Execute the HTTP method to the given URI template, writing the given request entity
to the request, and returns the response as
ResponseEntity. |
<T> ResponseEntity<T> |
exchange(String url,
HttpMethod method,
HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType,
Map<String,?> urlVariables)
Execute the HTTP method to the given URI template, writing the given request entity
to the request, and returns the response as
ResponseEntity. |
<T> ResponseEntity<T> |
exchange(String url,
HttpMethod method,
HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType,
Object... urlVariables)
Execute the HTTP method to the given URI template, writing the given request entity
to the request, and returns the response as
ResponseEntity. |
<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 returns the response as
ResponseEntity. |
<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 returns the response as
ResponseEntity. |
<T> T |
execute(String url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor,
Map<String,?> urlVariables)
Execute the HTTP method to the given URI template, preparing the request with the
RequestCallback, and reading the response with a ResponseExtractor. |
<T> T |
execute(String url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor,
Object... urlVariables)
Execute the HTTP method to the given URI template, preparing the request with the
RequestCallback, and reading the response with a ResponseExtractor. |
<T> T |
execute(URI url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor)
Execute the HTTP method to the given URL, preparing the request with the
RequestCallback, and reading the response with a ResponseExtractor. |
<T> ResponseEntity<T> |
getForEntity(String url,
Class<T> responseType,
Map<String,?> urlVariables)
Retrieve a representation by doing a GET on the URI template.
|
<T> ResponseEntity<T> |
getForEntity(String url,
Class<T> responseType,
Object... urlVariables)
Retrieve an entity by doing a GET on the specified URL.
|
<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,
Map<String,?> urlVariables)
Retrieve a representation by doing a GET on the URI template.
|
<T> T |
getForObject(String url,
Class<T> responseType,
Object... urlVariables)
Retrieve a representation by doing a GET on the specified URL.
|
<T> T |
getForObject(URI url,
Class<T> responseType)
Retrieve a representation by doing a GET on the URL .
|
RestTemplate |
getRestTemplate()
Returns the underlying
RestTemplate that is actually used to perform the
REST operations. |
String |
getRootUri()
Returns the root URI applied by a
RootUriTemplateHandler or "" if
the root URI is not available. |
HttpHeaders |
headForHeaders(String url,
Map<String,?> urlVariables)
Retrieve all headers of the resource specified by the URI template.
|
HttpHeaders |
headForHeaders(String url,
Object... urlVariables)
Retrieve all headers of the resource specified by the URI template.
|
HttpHeaders |
headForHeaders(URI url)
Retrieve all headers of the resource specified by the URL.
|
Set<HttpMethod> |
optionsForAllow(String url,
Map<String,?> urlVariables)
Return the value of the Allow header for the given URI.
|
Set<HttpMethod> |
optionsForAllow(String url,
Object... urlVariables)
Return the value of the Allow header for the given URI.
|
Set<HttpMethod> |
optionsForAllow(URI url)
Return the value of the Allow header for the given URL.
|
<T> T |
patchForObject(String url,
Object request,
Class<T> responseType,
Map<String,?> uriVariables)
Update a resource by PATCHing the given object to the URI template, and returns the
representation found in the response.
|
<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 returns 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 returns the
representation found in the response.
|
<T> ResponseEntity<T> |
postForEntity(String url,
Object request,
Class<T> responseType,
Map<String,?> urlVariables)
Create a new resource by POSTing the given object to the URI template, and returns
the response as
HttpEntity. |
<T> ResponseEntity<T> |
postForEntity(String url,
Object request,
Class<T> responseType,
Object... urlVariables)
Create a new resource by POSTing the given object to the URI template, and returns
the response as
ResponseEntity. |
<T> ResponseEntity<T> |
postForEntity(URI url,
Object request,
Class<T> responseType)
Create a new resource by POSTing the given object to the URL, and returns the
response as
ResponseEntity. |
URI |
postForLocation(String url,
Object request,
Map<String,?> urlVariables)
Create a new resource by POSTing the given object to the URI template, and returns
the value of the
Location header. |
URI |
postForLocation(String url,
Object request,
Object... urlVariables)
Create a new resource by POSTing the given object to the URI template, and returns
the value of the
Location header. |
URI |
postForLocation(URI url,
Object request)
Create a new resource by POSTing the given object to the URL, and returns the value
of the
Location header. |
<T> T |
postForObject(String url,
Object request,
Class<T> responseType,
Map<String,?> urlVariables)
Create a new resource by POSTing the given object to the URI template, and returns
the representation found in the response.
|
<T> T |
postForObject(String url,
Object request,
Class<T> responseType,
Object... urlVariables)
Create a new resource by POSTing the given object to the URI template, and returns
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 returns the
representation found in the response.
|
void |
put(String url,
Object request,
Map<String,?> urlVariables)
Creates a new resource by PUTting the given object to URI template.
|
void |
put(String url,
Object request,
Object... urlVariables)
Create or update a resource by PUTting the given object to the URI.
|
void |
put(URI url,
Object request)
Creates a new resource by PUTting the given object to URL.
|
void |
setUriTemplateHandler(UriTemplateHandler handler)
Configure the
UriTemplateHandler to use to expand URI templates. |
TestRestTemplate |
withBasicAuth(String username,
String password)
Creates a new
TestRestTemplate with the same configuration as this one,
except that it will send basic authorization headers using the given
username and password. |
public TestRestTemplate(RestTemplateBuilder restTemplateBuilder)
TestRestTemplate instance.restTemplateBuilder - builder used to configure underlying
RestTemplatepublic TestRestTemplate(TestRestTemplate.HttpClientOption... httpClientOptions)
TestRestTemplate instance.httpClientOptions - client options to use if the Apache HTTP Client is usedpublic TestRestTemplate(String username, String password, TestRestTemplate.HttpClientOption... httpClientOptions)
TestRestTemplate instance with the specified credentials.username - the username to use (or null)password - the password (or null)httpClientOptions - client options to use if the Apache HTTP Client is usedpublic TestRestTemplate(RestTemplateBuilder builder, String username, String password, TestRestTemplate.HttpClientOption... httpClientOptions)
TestRestTemplate instance with the specified credentials.builder - builder used to configure underlying RestTemplateusername - the username to use (or null)password - the password (or null)httpClientOptions - client options to use if the Apache HTTP Client is usedpublic void setUriTemplateHandler(UriTemplateHandler handler)
UriTemplateHandler to use to expand URI templates. By default
the DefaultUriBuilderFactory is used which relies on Spring's URI template
support and exposes several useful properties that customize its behavior for
encoding and for prepending a common base URL. An alternative implementation may be
used to plug an external URI template library.handler - the URI template handler to usepublic String getRootUri()
RootUriTemplateHandler or "" if
the root URI is not available.public <T> T getForObject(String url, Class<T> responseType, Object... urlVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
T - the type of the return valueurl - the URLresponseType - the type of the return valueurlVariables - the variables to expand the templateRestClientException - on client-side HTTP error on client-side HTTP errorRestTemplate.getForObject(String, Class, Object...)public <T> T getForObject(String url, Class<T> responseType, Map<String,?> urlVariables) throws RestClientException
URI Template variables are expanded using the given map.
T - the type of the return valueurl - the URLresponseType - the type of the return valueurlVariables - the map containing variables for the URI templateRestClientException - on client-side HTTP errorRestTemplate.getForObject(String, Class, Object...)public <T> T getForObject(URI url, Class<T> responseType) throws RestClientException
T - the type of the return valueurl - the URLresponseType - the type of the return valueRestClientException - on client-side HTTP errorRestTemplate.getForObject(java.net.URI, java.lang.Class)public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... urlVariables) throws RestClientException
ResponseEntity.
URI Template variables are expanded using the given URI variables, if any.
T - the type of the return valueurl - the URLresponseType - the type of the return valueurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorRestTemplate.getForEntity(java.lang.String, java.lang.Class,
java.lang.Object[])public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String,?> urlVariables) throws RestClientException
ResponseEntity.
URI Template variables are expanded using the given map.
T - the type of the return valueurl - the URLresponseType - the type of the return valueurlVariables - the map containing variables for the URI templateRestClientException - on client-side HTTP errorRestTemplate.getForEntity(java.lang.String, java.lang.Class, java.util.Map)public <T> ResponseEntity<T> getForEntity(URI url, Class<T> responseType) throws RestClientException
ResponseEntity.T - the type of the return valueurl - the URLresponseType - the type of the return valueRestClientException - on client-side HTTP errorRestTemplate.getForEntity(java.net.URI, java.lang.Class)public HttpHeaders headForHeaders(String url, Object... urlVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
url - the URLurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorRestTemplate.headForHeaders(java.lang.String, java.lang.Object[])public HttpHeaders headForHeaders(String url, Map<String,?> urlVariables) throws RestClientException
URI Template variables are expanded using the given map.
url - the URLurlVariables - the map containing variables for the URI templateRestClientException - on client-side HTTP errorRestTemplate.headForHeaders(java.lang.String, java.util.Map)public HttpHeaders headForHeaders(URI url) throws RestClientException
url - the URLRestClientException - on client-side HTTP errorRestTemplate.headForHeaders(java.net.URI)public URI postForLocation(String url, Object request, Object... urlVariables) throws RestClientException
Location 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 a HttpEntity in order to add
additional HTTP headers to the request.
url - the URLrequest - the Object to be POSTed, may be nullurlVariables - the variables to expand the templateLocation headerRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForLocation(java.lang.String, java.lang.Object,
java.lang.Object[])public URI postForLocation(String url, Object request, Map<String,?> urlVariables) throws RestClientException
Location 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 a HttpEntity in order to add
additional HTTP headers to the request.
url - the URLrequest - the Object to be POSTed, may be nullurlVariables - the variables to expand the templateLocation headerRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForLocation(java.lang.String, java.lang.Object,
java.util.Map)public URI postForLocation(URI url, Object request) throws RestClientException
Location header. This header typically indicates where the new
resource is stored.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
url - the URLrequest - the Object to be POSTed, may be nullLocation headerRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForLocation(java.net.URI, java.lang.Object)public <T> T postForObject(String url, Object request, Class<T> responseType, Object... urlVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the type of the return valueurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForObject(java.lang.String, java.lang.Object,
java.lang.Class, java.lang.Object[])public <T> T postForObject(String url, Object request, Class<T> responseType, Map<String,?> urlVariables) throws RestClientException
URI Template variables are expanded using the given map.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the type of the return valueurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForObject(java.lang.String, java.lang.Object,
java.lang.Class, java.util.Map)public <T> T postForObject(URI url, Object request, Class<T> responseType) throws RestClientException
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the type of the return valueRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForObject(java.net.URI, java.lang.Object, java.lang.Class)public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Object... urlVariables) throws RestClientException
ResponseEntity.
URI Template variables are expanded using the given URI variables, if any.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the response type to returnurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForEntity(java.lang.String, java.lang.Object,
java.lang.Class, java.lang.Object[])public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Map<String,?> urlVariables) throws RestClientException
HttpEntity.
URI Template variables are expanded using the given map.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the response type to returnurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForEntity(java.lang.String, java.lang.Object,
java.lang.Class, java.util.Map)public <T> ResponseEntity<T> postForEntity(URI url, Object request, Class<T> responseType) throws RestClientException
ResponseEntity.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the response type to returnRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.postForEntity(java.net.URI, java.lang.Object, java.lang.Class)public void put(String url, Object request, Object... urlVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
url - the URLrequest - the Object to be PUT, may be nullurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.put(java.lang.String, java.lang.Object, java.lang.Object[])public void put(String url, Object request, Map<String,?> urlVariables) throws RestClientException
URI Template variables are expanded using the given map.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
url - the URLrequest - the Object to be PUT, may be nullurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.put(java.lang.String, java.lang.Object, java.util.Map)public void put(URI url, Object request) throws RestClientException
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
url - the URLrequest - the Object to be PUT, may be nullRestClientException - on client-side HTTP errorHttpEntity,
RestTemplate.put(java.net.URI, java.lang.Object)public <T> T patchForObject(String url, Object request, Class<T> responseType, Object... uriVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be PATCHed, may be nullresponseType - the type of the return valueuriVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntitypublic <T> T patchForObject(String url, Object request, Class<T> responseType, Map<String,?> uriVariables) throws RestClientException
URI Template variables are expanded using the given map.
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be PATCHed, may be nullresponseType - the type of the return valueuriVariables - the variables to expand the templateRestClientException - on client-side HTTP errorHttpEntitypublic <T> T patchForObject(URI url, Object request, Class<T> responseType) throws RestClientException
The request parameter can be a HttpEntity in order to add
additional HTTP headers to the request.
T - the type of the return valueurl - the URLrequest - the Object to be POSTed, may be nullresponseType - the type of the return valueRestClientException - on client-side HTTP errorHttpEntitypublic void delete(String url, Object... urlVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
url - the URLurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.delete(java.lang.String, java.lang.Object[])public void delete(String url, Map<String,?> urlVariables) throws RestClientException
URI Template variables are expanded using the given map.
url - the URLurlVariables - the variables to expand the templateRestClientException - on client-side HTTP errorRestTemplate.delete(java.lang.String, java.util.Map)public void delete(URI url) throws RestClientException
url - the URLRestClientException - on client-side HTTP errorRestTemplate.delete(java.net.URI)public Set<HttpMethod> optionsForAllow(String url, Object... urlVariables) throws RestClientException
URI Template variables are expanded using the given URI variables, if any.
url - the URLurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.optionsForAllow(java.lang.String, java.lang.Object[])public Set<HttpMethod> optionsForAllow(String url, Map<String,?> urlVariables) throws RestClientException
URI Template variables are expanded using the given map.
url - the URLurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.optionsForAllow(java.lang.String, java.util.Map)public Set<HttpMethod> optionsForAllow(URI url) throws RestClientException
url - the URLRestClientException - on client-side HTTP errorRestTemplate.optionsForAllow(java.net.URI)public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... urlVariables) throws RestClientException
ResponseEntity.
URI Template variables are expanded using the given URI variables, if any.
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestEntity - the entity (headers and/or body) to write to the request, may
be nullresponseType - the type of the return valueurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.exchange(java.lang.String, org.springframework.http.HttpMethod,
org.springframework.http.HttpEntity, java.lang.Class, java.lang.Object[])public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Map<String,?> urlVariables) throws RestClientException
ResponseEntity.
URI Template variables are expanded using the given URI variables, if any.
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestEntity - the entity (headers and/or body) to write to the request, may
be nullresponseType - the type of the return valueurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.exchange(java.lang.String, org.springframework.http.HttpMethod,
org.springframework.http.HttpEntity, java.lang.Class, java.util.Map)public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType) throws RestClientException
ResponseEntity.T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestEntity - the entity (headers and/or body) to write to the request, may
be nullresponseType - the type of the return valueRestClientException - on client-side HTTP errorRestTemplate.exchange(java.net.URI, org.springframework.http.HttpMethod,
org.springframework.http.HttpEntity, java.lang.Class)public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Object... urlVariables) throws RestClientException
ResponseEntity. The given
ParameterizedTypeReference 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);
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestEntity - the entity (headers and/or body) to write to the request, may
be nullresponseType - the type of the return valueurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.exchange(java.lang.String, org.springframework.http.HttpMethod,
org.springframework.http.HttpEntity,
org.springframework.core.ParameterizedTypeReference, java.lang.Object[])public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Map<String,?> urlVariables) throws RestClientException
ResponseEntity. The given
ParameterizedTypeReference 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);
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestEntity - the entity (headers and/or body) to write to the request, may
be nullresponseType - the type of the return valueurlVariables - the variables to expand in the templateRestClientException - on client-side HTTP errorRestTemplate.exchange(java.lang.String, org.springframework.http.HttpMethod,
org.springframework.http.HttpEntity,
org.springframework.core.ParameterizedTypeReference, java.util.Map)public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) throws RestClientException
ResponseEntity. The given
ParameterizedTypeReference 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);
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestEntity - the entity (headers and/or body) to write to the request, may
be nullresponseType - the type of the return valueRestClientException - on client-side HTTP errorRestTemplate.exchange(java.net.URI, org.springframework.http.HttpMethod,
org.springframework.http.HttpEntity,
org.springframework.core.ParameterizedTypeReference)public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, Class<T> responseType) throws RestClientException
RequestEntity and return the
response as ResponseEntity. Typically used in combination with the static
builder methods on RequestEntity, for instance:
MyRequest body = ...
RequestEntity request = RequestEntity.post(new URI("https://example.com/foo")).accept(MediaType.APPLICATION_JSON).body(body);
ResponseEntity<MyResponse> response = template.exchange(request, MyResponse.class);
T - the type of the return valuerequestEntity - the entity to write to the requestresponseType - the type of the return valueRestClientException - on client-side HTTP errorRestTemplate.exchange(org.springframework.http.RequestEntity, java.lang.Class)public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) throws RestClientException
RequestEntity and return the
response as ResponseEntity. The given ParameterizedTypeReference is
used to pass generic type information:
MyRequest body = ...
RequestEntity request = RequestEntity.post(new URI("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);
T - the type of the return valuerequestEntity - the entity to write to the requestresponseType - the type of the return valueRestClientException - on client-side HTTP errorRestTemplate.exchange(org.springframework.http.RequestEntity,
org.springframework.core.ParameterizedTypeReference)public <T> T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Object... urlVariables) throws RestClientException
RequestCallback, and reading the response with a ResponseExtractor.
URI Template variables are expanded using the given URI variables, if any.
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestCallback - object that prepares the requestresponseExtractor - object that extracts the return value from the responseurlVariables - the variables to expand in the templateResponseExtractorRestClientException - on client-side HTTP errorRestTemplate.execute(java.lang.String, org.springframework.http.HttpMethod,
org.springframework.web.client.RequestCallback,
org.springframework.web.client.ResponseExtractor, java.lang.Object[])public <T> T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Map<String,?> urlVariables) throws RestClientException
RequestCallback, and reading the response with a ResponseExtractor.
URI Template variables are expanded using the given URI variables map.
T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestCallback - object that prepares the requestresponseExtractor - object that extracts the return value from the responseurlVariables - the variables to expand in the templateResponseExtractorRestClientException - on client-side HTTP errorRestTemplate.execute(java.lang.String, org.springframework.http.HttpMethod,
org.springframework.web.client.RequestCallback,
org.springframework.web.client.ResponseExtractor, java.util.Map)public <T> T execute(URI url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor) throws RestClientException
RequestCallback, and reading the response with a ResponseExtractor.T - the type of the return valueurl - the URLmethod - the HTTP method (GET, POST, etc)requestCallback - object that prepares the requestresponseExtractor - object that extracts the return value from the responseResponseExtractorRestClientException - on client-side HTTP errorRestTemplate.execute(java.net.URI, org.springframework.http.HttpMethod,
org.springframework.web.client.RequestCallback,
org.springframework.web.client.ResponseExtractor)public RestTemplate getRestTemplate()
RestTemplate that is actually used to perform the
REST operations.public TestRestTemplate withBasicAuth(String username, String password)
TestRestTemplate with the same configuration as this one,
except that it will send basic authorization headers using the given
username and password. The request factory used is a new instance
of the underlying RestTemplate's request factory type (when possible).username - the usernamepassword - the password