Class RESTClient
- java.lang.Object
-
- groovyx.net.http.HTTPBuilder
-
- groovyx.net.http.RESTClient
-
public class RESTClient extends HTTPBuilder
Extension to HTTPBuilder that basically attempts to provide a slightly more REST-ful face on top of HTTPBuilder. The differences between this class and HTTPBuilder are such:- Access to response headers. All "request" methods on this class by
default return an instance of
HttpResponseDecorator, which allows for simple evaluation of the response. - No streaming responses. Responses are expected to either not carry data
(in the case of HEAD or DELETE) or be parse-able into some sort of object.
That object is accessible via
HttpResponseDecorator.getData().
By default, all request method methods will return a
HttpResponseDecoratorinstance, which provides convenient access to response headers and the parsed response body. The response body is parsed based on content-type, identical to how HTTPBuilder'sdefault response handlerfunctions.Failed requests (i.e. responses which return a status code > 399) will by default throw a
HttpResponseException. This exception may be used to retrieve additional information regarding the response as well.- Since:
- 0.5
- Access to response headers. All "request" methods on this class by
default return an instance of
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class groovyx.net.http.HTTPBuilder
HTTPBuilder.RequestConfigDelegate
-
-
Field Summary
-
Fields inherited from class groovyx.net.http.HTTPBuilder
auth, autoAcceptHeader, contentEncodingHandler, defaultContentType, defaultRequestContentType, defaultRequestHeaders, defaultResponseHandlers, defaultURI, encoders, log, parsers
-
-
Constructor Summary
Constructors Constructor Description RESTClient()Constructor.RESTClient(java.lang.Object defaultURI)RESTClient(java.lang.Object defaultURI, java.lang.Object defaultContentType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddefaultFailureHandler(HttpResponseDecorator resp, java.lang.Object data)Throws an exception for non-successful HTTP response codes.protected HttpResponseDecoratordefaultSuccessHandler(HttpResponseDecorator resp, java.lang.Object data)Returns anHttpResponseDecorator, which provides simplified access to headers, response code, and parsed response body, as well as the underlyingHttpResponseinstance.java.lang.Objectdelete(java.util.Map<java.lang.String,?> args)Perform a DELETE request.java.lang.Objectget(java.util.Map<java.lang.String,?> args)Convenience method to perform an HTTP GET request.java.lang.Objecthead(java.util.Map<java.lang.String,?> args)Perform a HEAD request, often used to check preconditions before sending a large PUT or POST request.java.lang.Objectoptions(java.util.Map<java.lang.String,?> args)Perform an OPTIONS request.java.lang.Objectpatch(java.util.Map<java.lang.String,?> args)Convenience method to perform a PATCH request.java.lang.Objectpost(java.util.Map<java.lang.String,?> args)Convenience method to perform a POST request.java.lang.Objectput(java.util.Map<java.lang.String,?> args)Convenience method to perform a PUT request.-
Methods inherited from class groovyx.net.http.HTTPBuilder
buildDefaultResponseHandlers, createClient, defaultFailureHandler, doRequest, doRequest, get, getAuth, getClient, getContentType, getEncoder, getHandler, getHeaders, getParser, getUri, ignoreSSLIssues, isAutoAcceptHeader, parseResponse, post, request, request, request, setAuthConfig, setAutoAcceptHeader, setClient, setContentEncoding, setContentEncodingRegistry, setContentType, setEncoderRegistry, setHeaders, setParserRegistry, setProxy, setUri, shutdown
-
-
-
-
Constructor Detail
-
RESTClient
public RESTClient()
Constructor.- See Also:
HTTPBuilder()
-
RESTClient
public RESTClient(java.lang.Object defaultURI) throws java.net.URISyntaxException- Parameters:
defaultURI- default request URI (String, URI, URL orURIBuilder)- Throws:
java.net.URISyntaxException
-
RESTClient
public RESTClient(java.lang.Object defaultURI, java.lang.Object defaultContentType) throws java.net.URISyntaxException- Parameters:
defaultURI- default request URI (String, URI, URL orURIBuilder)defaultContentType- default content-type (String orContentType)- Throws:
java.net.URISyntaxException
-
-
Method Detail
-
get
public java.lang.Object get(java.util.Map<java.lang.String,?> args) throws org.apache.http.client.ClientProtocolException, java.io.IOException, java.net.URISyntaxExceptionConvenience method to perform an HTTP GET request. It will use the HTTPBuilder's
registered response handlersto handle success or failure status codes. By default, thedefaultSuccessHandler(HttpResponseDecorator, Object)successresponse handler will return a decorated response object that can be used to read response headers and data.A 'failed' response (i.e. any HTTP status code > 399) will be handled by the registered 'failure' handler. The
default failure handlerthrows aHttpResponseException.- Overrides:
getin classHTTPBuilder- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
java.net.URISyntaxExceptionjava.io.IOExceptionorg.apache.http.client.ClientProtocolException- See Also:
defaultSuccessHandler(HttpResponseDecorator, Object),defaultFailureHandler(HttpResponseDecorator, Object)
-
post
public java.lang.Object post(java.util.Map<java.lang.String,?> args) throws java.net.URISyntaxException, org.apache.http.client.ClientProtocolException, java.io.IOExceptionConvenience method to perform a POST request.
The request body (specified by a
bodynamed parameter) will be encoded based on therequestContentTypenamed parameter, or if none is given, the defaultcontent-typefor this instance.- Overrides:
postin classHTTPBuilder- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
org.apache.http.client.ClientProtocolExceptionjava.io.IOExceptionjava.net.URISyntaxException- See Also:
HTTPBuilder.getHandler(),HTTPBuilder.defaultSuccessHandler(HttpResponseDecorator, Object),HTTPBuilder.defaultFailureHandler(HttpResponseDecorator)
-
put
public java.lang.Object put(java.util.Map<java.lang.String,?> args) throws java.net.URISyntaxException, org.apache.http.client.ClientProtocolException, java.io.IOExceptionConvenience method to perform a PUT request.
The request body (specified by a
bodynamed parameter) will be encoded based on therequestContentTypenamed parameter, or if none is given, the defaultcontent-typefor this instance.- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
org.apache.http.client.ClientProtocolExceptionjava.io.IOExceptionjava.net.URISyntaxException
-
patch
public java.lang.Object patch(java.util.Map<java.lang.String,?> args) throws java.net.URISyntaxException, org.apache.http.client.ClientProtocolException, java.io.IOExceptionConvenience method to perform a PATCH request.
The request body (specified by a
bodynamed parameter) will be encoded based on therequestContentTypenamed parameter, or if none is given, the defaultcontent-typefor this instance.- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
org.apache.http.client.ClientProtocolExceptionjava.io.IOExceptionjava.net.URISyntaxException
-
head
public java.lang.Object head(java.util.Map<java.lang.String,?> args) throws java.net.URISyntaxException, org.apache.http.client.ClientProtocolException, java.io.IOExceptionPerform a HEAD request, often used to check preconditions before sending a large PUT or POST request.
- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
org.apache.http.client.ClientProtocolExceptionjava.io.IOExceptionjava.net.URISyntaxException
-
delete
public java.lang.Object delete(java.util.Map<java.lang.String,?> args) throws java.net.URISyntaxException, org.apache.http.client.ClientProtocolException, java.io.IOExceptionPerform a DELETE request. This method does not accept a
bodyargument.- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
org.apache.http.client.ClientProtocolExceptionjava.io.IOExceptionjava.net.URISyntaxException
-
options
public java.lang.Object options(java.util.Map<java.lang.String,?> args) throws org.apache.http.client.ClientProtocolException, java.io.IOException, java.net.URISyntaxExceptionPerform an OPTIONS request.
- Parameters:
args- named parameters - seeHTTPBuilder.RequestConfigDelegate.setPropertiesFromMap(Map)- Returns:
- a
HttpResponseDecorator, unless the default success handler is overridden. - Throws:
org.apache.http.client.ClientProtocolExceptionjava.io.IOExceptionjava.net.URISyntaxException
-
defaultSuccessHandler
protected HttpResponseDecorator defaultSuccessHandler(HttpResponseDecorator resp, java.lang.Object data) throws ResponseParseException
Returns anHttpResponseDecorator, which provides simplified access to headers, response code, and parsed response body, as well as the underlyingHttpResponseinstance.- Overrides:
defaultSuccessHandlerin classHTTPBuilder- Parameters:
resp- HTTP responsedata- parsed data as resolved from this instance'sParserRegistry- Returns:
- the parsed data object (whatever the parser returns).
- Throws:
ResponseParseException- if there is an error buffering a streaming response.
-
defaultFailureHandler
protected void defaultFailureHandler(HttpResponseDecorator resp, java.lang.Object data) throws HttpResponseException
Throws an exception for non-successful HTTP response codes. The exception instance will have a reference to the response object, in order to inspect status code and headers within thecatchblock.- Parameters:
resp- response objectdata- parsed response data- Throws:
HttpResponseException- exception which can access the response object.
-
-