java.lang.Object | |||
↳ | org.springframework.http.client.support.HttpAccessor | ||
↳ | org.springframework.http.client.support.InterceptingHttpAccessor | ||
↳ | org.springframework.web.client.RestTemplate |
The central class for client-side HTTP access. It simplifies communication with HTTP servers, and enforces RESTful principles. It handles HTTP connections, leaving application code to provide URLs (with possible template variables) and extract results.
The main entry points of this template are the methods named after the six main HTTP methods:
For each of these HTTP methods, there are three corresponding Java methods in the RestTemplate
. Two
variant take a String
URI as first argument (eg. getForObject(String, Class, Object[])
, getForObject(String, Class, Map)
), and are capable of substituting any URI templates
in
that URL using either a String
variable arguments array, or a Map<String, String>
. The string varargs
variant expands the given template variables in order, so that
String result = restTemplate.getForObject("http://example.com/hotels/{hotel}/bookings/{booking}", String.class,"42", "21");will perform a GET on
http://example.com/hotels/42/bookings/21
. The map variant expands the template based on
variable name, and is therefore more useful when using many variables, or when a single variable is used multiple
times. For example:
Map<String, String> vars = Collections.singletonMap("hotel", "42"); String result = restTemplate.getForObject("http://example.com/hotels/{hotel}/rooms/{hotel}", String.class, vars);will perform a GET on
http://example.com/hotels/42/rooms/42
. Alternatively, there are URI
variant
methods (getForObject(URI, Class)
), which do not allow for URI templates, but allow you to reuse a single,
expanded URI multiple times.
Furthermore, the String
-argument methods assume that the URL String is unencoded. This means that
restTemplate.getForObject("http://example.com/hotel list");will perform a GET on
http://example.com/hotel%20list
. As a result, any URL passed that is already encoded
will be encoded twice (i.e. http://example.com/hotel%20list
will become http://example.com/hotel%2520list
). If this behavior is undesirable, use the URI
-argument methods, which
will not perform any URL encoding.
Objects passed to and returned from these methods are converted to and from HTTP messages by HttpMessageConverter
instances. Converters for the main mime types are registered by default, but you can also write
your own converter and register it via the messageConverters
bean property.
This template uses a SimpleClientHttpRequestFactory
and a DefaultResponseErrorHandler
as default strategies for creating HTTP connections or handling HTTP errors,
respectively. These defaults can be overridden through the requestFactory
and errorHandler
bean properties.
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.http.client.support.HttpAccessor
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a new instance of the
RestTemplate using default settings. | |||||||||||
Create a new instance of the
RestTemplate based on the given ClientHttpRequestFactory . |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Delete the resources at the specified URI.
| |||||||||||
Delete the resources at the specified URL.
| |||||||||||
Delete the resources at the specified URI.
| |||||||||||
Execute the HTTP method to the given URI template, writing the given request entity to the request, and
returns the response as
ResponseEntity . | |||||||||||
Execute the HTTP method to the given URI template, writing the given request entity to the request, and
returns the response as
ResponseEntity . | |||||||||||
Execute the HTTP method to the given URI template, writing the given request entity to the request, and
returns the response as
ResponseEntity . | |||||||||||
Execute the HTTP method to the given URL, preparing the request with the
RequestCallback , and reading the response with a ResponseExtractor . | |||||||||||
Execute the HTTP method to the given URI template, preparing the request with the
RequestCallback , and reading the response with a ResponseExtractor . | |||||||||||
Execute the HTTP method to the given URI template, preparing the request with the
RequestCallback , and reading the response with a ResponseExtractor . | |||||||||||
Return the error handler.
| |||||||||||
Retrieve a representation by doing a GET on the URL .
| |||||||||||
Retrieve a representation by doing a GET on the URI template.
| |||||||||||
Retrieve an entity by doing a GET on the specified URL.
| |||||||||||
Retrieve a representation by doing a GET on the URI template.
| |||||||||||
Retrieve a representation by doing a GET on the URL .
| |||||||||||
Retrieve a representation by doing a GET on the specified URL.
| |||||||||||
Returns the message body converters.
| |||||||||||
Retrieve all headers of the resource specified by the URI template.
| |||||||||||
Retrieve all headers of the resource specified by the URL.
| |||||||||||
Retrieve all headers of the resource specified by the URI template.
| |||||||||||
Return the value of the Allow header for the given URL.
| |||||||||||
Return the value of the Allow header for the given URI.
| |||||||||||
Return the value of the Allow header for the given URI.
| |||||||||||
Create a new resource by POSTing the given object to the URI template,
and returns the response as
HttpEntity . | |||||||||||
Create a new resource by POSTing the given object to the URI template,
and returns the response as
ResponseEntity . | |||||||||||
Create a new resource by POSTing the given object to the URL,
and returns the response as
ResponseEntity . | |||||||||||
Create a new resource by POSTing the given object to the URI template, and returns the value of the
Location header. | |||||||||||
Create a new resource by POSTing the given object to the URL, and returns the value of the
Location header. | |||||||||||
Create a new resource by POSTing the given object to the URI template, and returns the value of the
Location header. | |||||||||||
Create a new resource by POSTing the given object to the URI template,
and returns the representation found in the response.
| |||||||||||
Create a new resource by POSTing the given object to the URL,
and returns the representation found in the response.
| |||||||||||
Create a new resource by POSTing the given object to the URI template,
and returns the representation found in the response.
| |||||||||||
Creates a new resource by PUTting the given object to URL.
| |||||||||||
Create or update a resource by PUTting the given object to the URI.
| |||||||||||
Creates a new resource by PUTting the given object to URI template.
| |||||||||||
Set the error handler.
| |||||||||||
Set the message body converters to use.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Execute the given method on the provided URI.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.http.client.support.InterceptingHttpAccessor
| |||||||||||
From class
org.springframework.http.client.support.HttpAccessor
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.springframework.web.client.RestOperations
|
Create a new instance of the RestTemplate
based on the given ClientHttpRequestFactory
.
requestFactory | HTTP request factory to use |
---|
Delete the resources at the specified URI.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
urlVariables | the variables to expand in the template |
RestClientException |
---|
Delete the resources at the specified URI.
URI Template variables are expanded using the given map.
url | the URL |
---|---|
urlVariables | the variables to expand the template |
RestClientException |
---|
Execute the HTTP method to the given URI template, writing the given request entity to the request, and
returns the response as ResponseEntity
.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
method | 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 value |
uriVariables | the variables to expand in the template |
RestClientException |
---|
Execute the HTTP method to the given URI template, writing the given request entity to the request, and
returns the response as ResponseEntity
.
url | the URL |
---|---|
method | 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 value |
RestClientException |
---|
Execute the HTTP method to the given URI template, writing the given request entity to the request, and
returns the response as ResponseEntity
.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
method | 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 value |
uriVariables | the variables to expand in the template |
RestClientException |
---|
Execute the HTTP method to the given URL, preparing the request with the
RequestCallback
, and reading the response with a ResponseExtractor
.
url | the URL |
---|---|
method | the HTTP method (GET, POST, etc) |
requestCallback | object that prepares the request |
responseExtractor | object that extracts the return value from the response |
ResponseExtractor
RestClientException |
---|
Execute the HTTP method to the given URI template, preparing the request with the
RequestCallback
, and reading the response with a ResponseExtractor
.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
method | the HTTP method (GET, POST, etc) |
requestCallback | object that prepares the request |
responseExtractor | object that extracts the return value from the response |
urlVariables | the variables to expand in the template |
ResponseExtractor
RestClientException |
---|
Execute the HTTP method to the given URI template, preparing the request with the
RequestCallback
, and reading the response with a ResponseExtractor
.
URI Template variables are expanded using the given URI variables map.
url | the URL |
---|---|
method | the HTTP method (GET, POST, etc) |
requestCallback | object that prepares the request |
responseExtractor | object that extracts the return value from the response |
urlVariables | the variables to expand in the template |
ResponseExtractor
RestClientException |
---|
Return the error handler. By default, this is the DefaultResponseErrorHandler
.
Retrieve a representation by doing a GET on the URL .
The response is converted and stored in an ResponseEntity
.
url | the URL |
---|---|
responseType | the type of the return value |
RestClientException |
---|
Retrieve a representation by doing a GET on the URI template.
The response is converted and stored in an ResponseEntity
.
URI Template variables are expanded using the given map.
url | the URL |
---|---|
responseType | the type of the return value |
urlVariables | the map containing variables for the URI template |
RestClientException |
---|
Retrieve an entity by doing a GET on the specified URL.
The response is converted and stored in an ResponseEntity
.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
responseType | the type of the return value |
urlVariables | the variables to expand the template |
RestClientException |
---|
Retrieve 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.
url | the URL |
---|---|
responseType | the type of the return value |
urlVariables | the map containing variables for the URI template |
RestClientException |
---|
Retrieve a representation by doing a GET on the URL . The response (if any) is converted and returned.
url | the URL |
---|---|
responseType | the type of the return value |
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.
url | the URL |
---|---|
responseType | the type of the return value |
urlVariables | the variables to expand the template |
RestClientException |
---|
Returns the message body converters. These converters are used to convert from and to HTTP requests and responses.
Retrieve all headers of the resource specified by the URI template.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
urlVariables | the variables to expand the template |
RestClientException |
---|
Retrieve all headers of the resource specified by the URL.
url | the URL |
---|
RestClientException |
---|
Retrieve all headers of the resource specified by the URI template.
URI Template variables are expanded using the given map.
url | the URL |
---|---|
urlVariables | the map containing variables for the URI template |
RestClientException |
---|
Return the value of the Allow header for the given URL.
url | the URL |
---|
RestClientException |
---|
Return the value of the Allow header for the given URI.
URI Template variables are expanded using the given map.
url | the URL |
---|---|
urlVariables | the variables to expand in the template |
RestClientException |
---|
Return the value of the Allow header for the given URI.
URI Template variables are expanded using the given URI variables, if any.
url | the URL |
---|---|
urlVariables | the variables to expand in the template |
RestClientException |
---|
Create a new resource by POSTing the given object to the URI template,
and returns the response as 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.
url | the URL |
---|---|
request | the Object to be POSTed, may be null |
uriVariables | the variables to expand the template |
RestClientException |
---|
Create a new resource by POSTing the given object to the URI template,
and returns the response as 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.
url | the URL |
---|---|
request | the Object to be POSTed, may be null |
uriVariables | the variables to expand the template |
RestClientException |
---|
Create a new resource by POSTing the given object to the URL,
and returns the response as ResponseEntity
.
The request
parameter can be a HttpEntity
in order to
add additional HTTP headers to the request.
url | the URL |
---|---|
request | the Object to be POSTed, may be null |
RestClientException |
---|
Create a new resource by POSTing the given object to the URI template, and returns the value of the
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 URL |
---|---|
request | the Object to be POSTed, may be null |
urlVariables | the variables to expand the template |
Location
headerRestClientException |
---|
Create a new resource by POSTing the given object to the URL, and returns the value of the
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 URL |
---|---|
request | the Object to be POSTed, may be null |
Location
headerRestClientException |
---|
Create a new resource by POSTing the given object to the URI template, and returns the value of the
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 URL |
---|---|
request | the Object to be POSTed, may be null |
urlVariables | the variables to expand the template |
Location
headerRestClientException |
---|
Create a new resource by POSTing the given object to the URI template, and returns the representation found in the response.
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 URL |
---|---|
request | the Object to be POSTed, may be null |
responseType | the type of the return value |
uriVariables | the variables to expand the template |
RestClientException |
---|
Create a new resource by POSTing the given object to the URL, and returns the representation found in the response.
The request
parameter can be a HttpEntity
in order to
add additional HTTP headers to the request.
url | the URL |
---|---|
request | the Object to be POSTed, may be null |
responseType | the type of the return value |
RestClientException |
---|
Create a new resource by POSTing the given object to the URI template, and returns the representation found in the response.
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 URL |
---|---|
request | the Object to be POSTed, may be null |
responseType | the type of the return value |
uriVariables | the variables to expand the template |
RestClientException |
---|
Creates a new resource by PUTting the given object to URL.
The request
parameter can be a HttpEntity
in order to
add additional HTTP headers to the request.
url | the URL |
---|---|
request | the Object to be PUT, may be null |
RestClientException |
---|
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 a HttpEntity
in order to
add additional HTTP headers to the request.
url | the URL |
---|---|
request | the Object to be PUT, may be null |
urlVariables | the variables to expand the template |
RestClientException |
---|
Creates 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 a HttpEntity
in order to
add additional HTTP headers to the request.
url | the URL |
---|---|
request | the Object to be PUT, may be null |
urlVariables | the variables to expand the template |
RestClientException |
---|
Set the message body converters to use. These converters are used to convert from and to HTTP requests and responses.
Execute the given method on the provided URI. The ClientHttpRequest
is processed using the RequestCallback
; the response with the ResponseExtractor
.
url | the fully-expanded URL to connect to |
---|---|
method | the HTTP method to execute (GET, POST, etc.) |
requestCallback | object that prepares the request (can be null ) |
responseExtractor | object that extracts the return value from the response (can be null ) |
ResponseExtractor
RestClientException |
---|