Search code examples
restgrailsgrails-pluginhttpbuilder

Grails REST Client Plugin - Specify Header Data


Latest version of the REST Client plugin for grails:

withHttp(uri: "http://foo/bar") {
    def bodyContent = [
           apiKey: "somekey",
           identifier: identity.identity,
           activity: ac as JSON
        ]
    def json = post(path: 'activity', body: bodyContent)
    if (json.stat == 'ok') {
        wsr.success = true
    }
}

How do I add header data to this request?


Solution

  • You should be able to pass a Closure to the post method and set headers there.

    withHttp(uri: "http://foo/bar") {
        def bodyContent = [
               apiKey: "somekey",
               identifier: identity.identity,
               activity: ac as JSON
            ]
        def json = post(path: 'activity', body: bodyContent) {
            headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'
        }
        if (json.stat == 'ok') {
            wsr.success = true
        }
    }
    

    The following should also work:

    ....
    ....
    def json = post(path: 'activity', 
                     body: bodyContent, 
                     headers:['User-Agent':'myagent'])
    ....
    ....