Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: updated example for latest HTTPBuilder version

HTTPBuilder

Excerpt

provides a convenient builder API for complex HTTP requests

. It is built on top of Apache HttpClient.
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
java
java
@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}"
  }
}