|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.http.client.support.HttpAccessor
org.springframework.web.client.RestTemplate
public class 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.
HttpMessageConverter,
RequestCallback,
ResponseExtractor,
ResponseErrorHandler| Field Summary |
|---|
| Fields inherited from class org.springframework.http.client.support.HttpAccessor |
|---|
logger |
| Constructor Summary | |
|---|---|
RestTemplate()
Create a new instance of the RestTemplate using default settings. |
|
RestTemplate(ClientHttpRequestFactory requestFactory)
Create a new instance of the RestTemplate based on the given ClientHttpRequestFactory. |
|
| Method Summary | ||
|---|---|---|
void |
delete(java.lang.String url,
java.util.Map<java.lang.String,?> urlVariables)
|
|
void |
delete(java.lang.String url,
java.lang.Object... urlVariables)
|
|
void |
delete(java.net.URI url)
|
|
protected
|
doExecute(java.net.URI url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor)
Execute the given method on the provided URI. |
|
|
exchange(java.lang.String url,
HttpMethod method,
HttpEntity<?> requestEntity,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> uriVariables)
|
|
|
exchange(java.lang.String url,
HttpMethod method,
HttpEntity<?> requestEntity,
java.lang.Class<T> responseType,
java.lang.Object... uriVariables)
|
|
|
exchange(java.net.URI url,
HttpMethod method,
HttpEntity<?> requestEntity,
java.lang.Class<T> responseType)
|
|
|
execute(java.lang.String url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor,
java.util.Map<java.lang.String,?> urlVariables)
|
|
|
execute(java.lang.String url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor,
java.lang.Object... urlVariables)
|
|
|
execute(java.net.URI url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor)
|
|
ResponseErrorHandler |
getErrorHandler()
Return the error handler. |
|
|
getForEntity(java.lang.String url,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> urlVariables)
|
|
|
getForEntity(java.lang.String url,
java.lang.Class<T> responseType,
java.lang.Object... urlVariables)
|
|
|
getForEntity(java.net.URI url,
java.lang.Class<T> responseType)
|
|
|
getForObject(java.lang.String url,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> urlVariables)
|
|
|
getForObject(java.lang.String url,
java.lang.Class<T> responseType,
java.lang.Object... urlVariables)
|
|
|
getForObject(java.net.URI url,
java.lang.Class<T> responseType)
|
|
java.util.List<HttpMessageConverter<?>> |
getMessageConverters()
Returns the message body converters. |
|
HttpHeaders |
headForHeaders(java.lang.String url,
java.util.Map<java.lang.String,?> urlVariables)
|
|
HttpHeaders |
headForHeaders(java.lang.String url,
java.lang.Object... urlVariables)
|
|
HttpHeaders |
headForHeaders(java.net.URI url)
|
|
java.util.Set<HttpMethod> |
optionsForAllow(java.lang.String url,
java.util.Map<java.lang.String,?> urlVariables)
|
|
java.util.Set<HttpMethod> |
optionsForAllow(java.lang.String url,
java.lang.Object... urlVariables)
|
|
java.util.Set<HttpMethod> |
optionsForAllow(java.net.URI url)
|
|
|
postForEntity(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> uriVariables)
|
|
|
postForEntity(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.lang.Object... uriVariables)
|
|
|
postForEntity(java.net.URI url,
java.lang.Object request,
java.lang.Class<T> responseType)
|
|
java.net.URI |
postForLocation(java.lang.String url,
java.lang.Object request,
java.util.Map<java.lang.String,?> urlVariables)
|
|
java.net.URI |
postForLocation(java.lang.String url,
java.lang.Object request,
java.lang.Object... urlVariables)
|
|
java.net.URI |
postForLocation(java.net.URI url,
java.lang.Object request)
|
|
|
postForObject(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> uriVariables)
|
|
|
postForObject(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.lang.Object... uriVariables)
|
|
|
postForObject(java.net.URI url,
java.lang.Object request,
java.lang.Class<T> responseType)
|
|
void |
put(java.lang.String url,
java.lang.Object request,
java.util.Map<java.lang.String,?> urlVariables)
|
|
void |
put(java.lang.String url,
java.lang.Object request,
java.lang.Object... urlVariables)
|
|
void |
put(java.net.URI url,
java.lang.Object request)
|
|
void |
setErrorHandler(ResponseErrorHandler errorHandler)
Set the error handler. |
|
void |
setMessageConverters(java.util.List<HttpMessageConverter<?>> messageConverters)
Set the message body converters to use. |
|
| Methods inherited from class org.springframework.http.client.support.HttpAccessor |
|---|
createRequest, getRequestFactory, setRequestFactory |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public RestTemplate()
RestTemplate using default settings.
public RestTemplate(ClientHttpRequestFactory requestFactory)
RestTemplate based on the given ClientHttpRequestFactory.
requestFactory - HTTP request factory to useSimpleClientHttpRequestFactory,
CommonsClientHttpRequestFactory| Method Detail |
|---|
public void setMessageConverters(java.util.List<HttpMessageConverter<?>> messageConverters)
public java.util.List<HttpMessageConverter<?>> getMessageConverters()
public void setErrorHandler(ResponseErrorHandler errorHandler)
public ResponseErrorHandler getErrorHandler()
DefaultResponseErrorHandler.
public <T> T getForObject(java.lang.String url,
java.lang.Class<T> responseType,
java.lang.Object... urlVariables)
throws RestClientException
getForObject in interface RestOperationsRestClientException
public <T> T getForObject(java.lang.String url,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
getForObject in interface RestOperationsRestClientException
public <T> T getForObject(java.net.URI url,
java.lang.Class<T> responseType)
throws RestClientException
getForObject in interface RestOperationsRestClientException
public <T> ResponseEntity<T> getForEntity(java.lang.String url,
java.lang.Class<T> responseType,
java.lang.Object... urlVariables)
throws RestClientException
getForEntity in interface RestOperationsRestClientException
public <T> ResponseEntity<T> getForEntity(java.lang.String url,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
getForEntity in interface RestOperationsRestClientException
public <T> ResponseEntity<T> getForEntity(java.net.URI url,
java.lang.Class<T> responseType)
throws RestClientException
getForEntity in interface RestOperationsRestClientException
public HttpHeaders headForHeaders(java.lang.String url,
java.lang.Object... urlVariables)
throws RestClientException
headForHeaders in interface RestOperationsRestClientException
public HttpHeaders headForHeaders(java.lang.String url,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
headForHeaders in interface RestOperationsRestClientException
public HttpHeaders headForHeaders(java.net.URI url)
throws RestClientException
headForHeaders in interface RestOperationsRestClientException
public java.net.URI postForLocation(java.lang.String url,
java.lang.Object request,
java.lang.Object... urlVariables)
throws RestClientException
postForLocation in interface RestOperationsRestClientException
public java.net.URI postForLocation(java.lang.String url,
java.lang.Object request,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
postForLocation in interface RestOperationsRestClientException
public java.net.URI postForLocation(java.net.URI url,
java.lang.Object request)
throws RestClientException
postForLocation in interface RestOperationsRestClientException
public <T> T postForObject(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.lang.Object... uriVariables)
throws RestClientException
postForObject in interface RestOperationsRestClientException
public <T> T postForObject(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> uriVariables)
throws RestClientException
postForObject in interface RestOperationsRestClientException
public <T> T postForObject(java.net.URI url,
java.lang.Object request,
java.lang.Class<T> responseType)
throws RestClientException
postForObject in interface RestOperationsRestClientException
public <T> ResponseEntity<T> postForEntity(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.lang.Object... uriVariables)
throws RestClientException
postForEntity in interface RestOperationsRestClientException
public <T> ResponseEntity<T> postForEntity(java.lang.String url,
java.lang.Object request,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> uriVariables)
throws RestClientException
postForEntity in interface RestOperationsRestClientException
public <T> ResponseEntity<T> postForEntity(java.net.URI url,
java.lang.Object request,
java.lang.Class<T> responseType)
throws RestClientException
postForEntity in interface RestOperationsRestClientException
public void put(java.lang.String url,
java.lang.Object request,
java.lang.Object... urlVariables)
throws RestClientException
put in interface RestOperationsRestClientException
public void put(java.lang.String url,
java.lang.Object request,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
put in interface RestOperationsRestClientException
public void put(java.net.URI url,
java.lang.Object request)
throws RestClientException
put in interface RestOperationsRestClientException
public void delete(java.lang.String url,
java.lang.Object... urlVariables)
throws RestClientException
delete in interface RestOperationsRestClientException
public void delete(java.lang.String url,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
delete in interface RestOperationsRestClientException
public void delete(java.net.URI url)
throws RestClientException
delete in interface RestOperationsRestClientException
public java.util.Set<HttpMethod> optionsForAllow(java.lang.String url,
java.lang.Object... urlVariables)
throws RestClientException
optionsForAllow in interface RestOperationsRestClientException
public java.util.Set<HttpMethod> optionsForAllow(java.lang.String url,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
optionsForAllow in interface RestOperationsRestClientException
public java.util.Set<HttpMethod> optionsForAllow(java.net.URI url)
throws RestClientException
optionsForAllow in interface RestOperationsRestClientException
public <T> ResponseEntity<T> exchange(java.lang.String url,
HttpMethod method,
HttpEntity<?> requestEntity,
java.lang.Class<T> responseType,
java.lang.Object... uriVariables)
throws RestClientException
exchange in interface RestOperationsRestClientException
public <T> ResponseEntity<T> exchange(java.lang.String url,
HttpMethod method,
HttpEntity<?> requestEntity,
java.lang.Class<T> responseType,
java.util.Map<java.lang.String,?> uriVariables)
throws RestClientException
exchange in interface RestOperationsRestClientException
public <T> ResponseEntity<T> exchange(java.net.URI url,
HttpMethod method,
HttpEntity<?> requestEntity,
java.lang.Class<T> responseType)
throws RestClientException
exchange in interface RestOperationsRestClientException
public <T> T execute(java.lang.String url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor,
java.lang.Object... urlVariables)
throws RestClientException
execute in interface RestOperationsRestClientException
public <T> T execute(java.lang.String url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor,
java.util.Map<java.lang.String,?> urlVariables)
throws RestClientException
execute in interface RestOperationsRestClientException
public <T> T execute(java.net.URI url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor)
throws RestClientException
execute in interface RestOperationsRestClientException
protected <T> T doExecute(java.net.URI url,
HttpMethod method,
RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor)
throws RestClientException
ClientHttpRequest is processed using the RequestCallback; the response with the ResponseExtractor.
url - the fully-expanded URL to connect tomethod - 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
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||