HTTPBuilder
| Excerpt |
|---|
provides a convenient builder API for complex HTTP requests |
The project home page includes full documentation and downloads.
Note that if you are using the example below works for HTTPBuilder version 0.5.0 RC1, url is now uri and query is now params. The code example below was written for versions prior to 0.5.0 RC1.-RC2. In prior versions, the uri property was called url. Also note that @Grab dependency management requires Groovy 1.6 or later. More information may be found here.
Example: HTTP GET, automatically parsed as a JSON response.
| Code Block | ||
|---|---|---|
| ||
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0-RC2' ) import groovyx.net.http.* import static groovyx.net.http.ContentType.* import static groovyx.net.http.Method.* def http = new HTTPBuilder( 'http://ajax.googleapis.com' ) // perform a GET request, expecting JSON response data http.request( GET, JSON ) { urluri.path = '/ajax/services/search/web' urluri.query = [ v:'1.0', q: 'Calvin and Hobbes' ] headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4' // response handler for a success response code: response.success = { resp, json -> println resp.statusLine // parse the JSON response object: json.responseData.results.each { println " ${it.titleNoFormatting} : ${it.visibleUrl}" } } // handler for any failure status code: response.failure = { resp -> println "Unexpected error: ${resp.statusLine.statusCode} : ${resp.statusLine.reasonPhrase}" } } |