Question

I am trying to to make a rabbitmq http api call to know how queues are there and other infos...

I need 3 variables to pass on to the api

1) url: (http://localhost:55672/api) 2) username/password: guest/guest 3) realm: "RabbitMQ Management" //i am not sure if this is important 4) path: "/queues"

when i make curl statement it gives a positive response

sudo curl -i -u guest:guest (http://localhost:55672)/api/queues HTTP/1.1 200 OK Server: MochiWeb/1.1 WebMachine/1.7 (participate in the frantic) Date: Tue, 03 Jul 2012 01:39:05 GMT Content-Type: application/json Content-Length: 6176 Cache-Control: no-cache

but using httpbuilder from groovy. here is the code

    def http = new HTTPBuilder("(http://localhost:55672/api)")
    http.auth.basic 'guest','guest'

    http.request(GET) { req ->
        uri.path = '/queues'

        response.success = { resp, reader ->
            assert resp.statusLine.statusCode == 200
            println "Got response: ${resp.statusLine}"
            println "Content-Type: ${resp.headers.'Content-Type'}"
            println reader.json
        }

        response.'404' = { println 'Not found' }
    }

I am getting "not found" as the result. I am not including realm because I am unable to if i can insert "realm" in httpbuilder. it only comes with OAuth however I need to use basic auth for rabbit mq http api calls.

Does anyone knows how to include realm name in httpbuilder groovy for basic authentication? is there any other way. Kindly let me know! thanks!

Was it helpful?

Solution

Does this work?

def http = new HTTPBuilder( 'http://localhost:55672' )
http.auth.basic 'guest','guest'
http.request(GET) { req ->
    uri.path = '/api/queues'
    response.success = { resp, reader ->
        assert resp.statusLine.statusCode == 200
        println "Got response: ${resp.statusLine}"
        println "Content-Type: ${resp.headers.'Content-Type'}"
        println reader.json
    }
    response.'404' = { println 'Not found' }
}

Took the braces and the path out of your base url, added /api to the path

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top