public class TestRestTemplate extends Object
RestTemplate
that is suitable for integration tests.
TestRestTemplate
is fault-tolerant. This means that 4xx and 5xx do not result
in an exception being thrown and can instead be detected via the response entity
and its status code
.
A TestRestTemplate
can optionally 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
RestTemplate
public 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 RestTemplate
username
- 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)
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 templateRestTemplate.getForObject(String, Class, Object...)
public <T> T getForObject(String url, Class<T> responseType, Map<String,?> urlVariables)
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 templateRestTemplate.getForObject(String, Class, Object...)
public <T> T getForObject(URI url, Class<T> responseType)
T
- the type of the return valueurl
- the URLresponseType
- the type of the return valueRestTemplate.getForObject(java.net.URI, java.lang.Class)
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... urlVariables)
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 templateRestTemplate.getForEntity(java.lang.String, java.lang.Class,
java.lang.Object[])
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String,?> urlVariables)
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 templateRestTemplate.getForEntity(java.lang.String, java.lang.Class, java.util.Map)
public <T> ResponseEntity<T> getForEntity(URI url, Class<T> responseType)
ResponseEntity
.T
- the type of the return valueurl
- the URLresponseType
- the type of the return valueRestTemplate.getForEntity(java.net.URI, java.lang.Class)
public HttpHeaders headForHeaders(String url, Object... urlVariables)
URI Template variables are expanded using the given URI variables, if any.
url
- the URLurlVariables
- the variables to expand the templateRestTemplate.headForHeaders(java.lang.String, java.lang.Object[])
public HttpHeaders headForHeaders(String url, Map<String,?> urlVariables)
URI Template variables are expanded using the given map.
url
- the URLurlVariables
- the map containing variables for the URI templateRestTemplate.headForHeaders(java.lang.String, java.util.Map)
public HttpHeaders headForHeaders(URI url)
url
- the URLRestTemplate.headForHeaders(java.net.URI)
public URI postForLocation(String url, Object request, Object... urlVariables)
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 null
urlVariables
- the variables to expand the templateLocation
headerHttpEntity
,
RestTemplate.postForLocation(java.lang.String, java.lang.Object,
java.lang.Object[])
public URI postForLocation(String url, Object request, Map<String,?> urlVariables)
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 null
urlVariables
- the variables to expand the templateLocation
headerHttpEntity
,
RestTemplate.postForLocation(java.lang.String, java.lang.Object,
java.util.Map)
public URI postForLocation(URI url, Object request)
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 null
Location
headerHttpEntity
,
RestTemplate.postForLocation(java.net.URI, java.lang.Object)
public <T> T postForObject(String url, Object request, Class<T> responseType, Object... urlVariables)
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 null
responseType
- the type of the return valueurlVariables
- the variables to expand the templateHttpEntity
,
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)
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 null
responseType
- the type of the return valueurlVariables
- the variables to expand the templateHttpEntity
,
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)
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 null
responseType
- the type of the return valueHttpEntity
,
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)
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 null
responseType
- the response type to returnurlVariables
- the variables to expand the templateHttpEntity
,
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)
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 null
responseType
- the response type to returnurlVariables
- the variables to expand the templateHttpEntity
,
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)
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 null
responseType
- the response type to returnHttpEntity
,
RestTemplate.postForEntity(java.net.URI, java.lang.Object, java.lang.Class)
public void put(String url, Object request, Object... urlVariables)
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.
If you need to assert the request result consider using the
exchange
method.
url
- the URLrequest
- the Object to be PUT, may be null
urlVariables
- the variables to expand the templateHttpEntity
,
RestTemplate.put(java.lang.String, java.lang.Object, java.lang.Object[])
public void put(String url, Object request, Map<String,?> urlVariables)
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.
If you need to assert the request result consider using the
exchange
method.
url
- the URLrequest
- the Object to be PUT, may be null
urlVariables
- the variables to expand the templateHttpEntity
,
RestTemplate.put(java.lang.String, java.lang.Object, java.util.Map)
public void put(URI url, Object request)
The request
parameter can be a HttpEntity
in order to add
additional HTTP headers to the request.
If you need to assert the request result consider using the
exchange
method.
url
- the URLrequest
- the Object to be PUT, may be null
HttpEntity
,
RestTemplate.put(java.net.URI, java.lang.Object)
public <T> T patchForObject(String url, Object request, Class<T> responseType, Object... uriVariables)
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 null
responseType
- the type of the return valueuriVariables
- the variables to expand the templateHttpEntity
public <T> T patchForObject(String url, Object request, Class<T> responseType, Map<String,?> uriVariables)
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 null
responseType
- the type of the return valueuriVariables
- the variables to expand the templateHttpEntity
public <T> T patchForObject(URI url, Object request, Class<T> responseType)
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 null
responseType
- the type of the return valueHttpEntity
public void delete(String url, Object... urlVariables)
URI Template variables are expanded using the given URI variables, if any.
If you need to assert the request result consider using the
exchange
method.
url
- the URLurlVariables
- the variables to expand in the templateRestTemplate.delete(java.lang.String, java.lang.Object[])
public void delete(String url, Map<String,?> urlVariables)
URI Template variables are expanded using the given map.
If you need to assert the request result consider using the
exchange
method.
url
- the URLurlVariables
- the variables to expand the templateRestTemplate.delete(java.lang.String, java.util.Map)
public void delete(URI url)
If you need to assert the request result consider using the
exchange
method.
url
- the URLRestTemplate.delete(java.net.URI)
public Set<HttpMethod> optionsForAllow(String url, Object... urlVariables)
Allow
header for the given URI.
URI Template variables are expanded using the given URI variables, if any.
url
- the URLurlVariables
- the variables to expand in the templateAllow
headerRestTemplate.optionsForAllow(java.lang.String, java.lang.Object[])
public Set<HttpMethod> optionsForAllow(String url, Map<String,?> urlVariables)
Allow
header for the given URI.
URI Template variables are expanded using the given map.
url
- the URLurlVariables
- the variables to expand in the templateAllow
headerRestTemplate.optionsForAllow(java.lang.String, java.util.Map)
public Set<HttpMethod> optionsForAllow(URI url)
Allow
header for the given URL.url
- the URLAllow
headerRestTemplate.optionsForAllow(java.net.URI)
public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... urlVariables)
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 null
responseType
- the type of the return valueurlVariables
- the variables to expand in the templateRestTemplate.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)
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 null
responseType
- the type of the return valueurlVariables
- the variables to expand in the templateRestTemplate.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)
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 null
responseType
- the type of the return valueRestTemplate.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)
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 null
responseType
- the type of the return valueurlVariables
- the variables to expand in the templateRestTemplate.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)
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 null
responseType
- the type of the return valueurlVariables
- the variables to expand in the templateRestTemplate.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)
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 null
responseType
- the type of the return valueRestTemplate.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)
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 valueRestTemplate.exchange(org.springframework.http.RequestEntity, java.lang.Class)
public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType)
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 valueRestTemplate.exchange(org.springframework.http.RequestEntity,
org.springframework.core.ParameterizedTypeReference)
public <T> T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Object... urlVariables)
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 templateResponseExtractor
RestTemplate.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)
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 templateResponseExtractor
RestTemplate.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)
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 responseResponseExtractor
RestTemplate.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