Аутентификация Groovy Httpbuilder с помощью Realm + RABBIT MQ

Я пытаюсь сделать вызов http API rabbitmq, чтобы узнать, как там очереди и другая информация...

Мне нужно 3 переменные для передачи в API

1) url: (http://localhost:55672/api) 2) имя пользователя/пароль: guest/guest 3) область: «Управление RabbitMQ» // я не уверен, что это важно 4) путь: «/queues»

когда я делаю заявление curl, он дает положительный ответ

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

но используя httpbuilder из groovy. вот код

    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' }
    }

В результате получаю "не найдено". Я не включаю область, потому что я не могу вставить «область» в httpbuilder. он поставляется только с OAuth, однако мне нужно использовать базовую аутентификацию для вызовов http api кролика mq.

Кто-нибудь знает, как включить имя области в httpbuilder groovy для базовой аутентификации? Есть ли другой способ. Пожалуйста, дайте мне знать! Благодарность!


person user1313900    schedule 03.07.2012    source источник


Ответы (1)


Это работает?

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' }
}

Убрал фигурные скобки и путь из вашего базового URL, добавил /api к пути

person tim_yates    schedule 03.07.2012