Как удалить соединение с помощью curl и HTTP API в RabbitMQ - PullRequest
0 голосов
/ 12 декабря 2018

В документации HTTP API RabbitMQ указано, что / api / connections / name может использоваться для удаления соединения.Но curl -i -u guest:guest -X "DELETE" http://localhost:15672/api/connections/ --data-urlencode "${conn_name}" дает:

HTTP/1.1 405 Method Not Allowed
allow: HEAD, GET, OPTIONS
content-length: 0
date: Wed, 12 Dec 2018 16:54:48 GMT
server: Cowboy
vary: origin

Однако GET работает.curl -i -u guest:guest -X GET http://localhost:15672/api/connections/ --data-urlencode "${conn_name}" дает

HTTP/1.1 200 OK
cache-control: no-cache
content-length: 1175
content-type: application/json
date: Wed, 12 Dec 2018 16:48:32 GMT
server: Cowboy
vary: accept, accept-encoding, origin

[{"auth_mechanism":"PLAIN",...

1 Ответ

0 голосов
/ 12 декабря 2018

Пожалуйста, внимательно перечитайте документацию API для /api/connections и DELETE.Вы заметите, что правильный URI для этой операции - /api/connections/name, где name - имя вашего соединения.Параметр --data-urlencode для curl в основном предназначен для POST запросов (но см. Параметр -G curl).Ваш запрос GET фактически возвращает все соединения.

Итак, если ваше соединение называется «My RabbitMQ Connection», вам сначала нужно будет закодировать его по URL-адресу и создать правильноеURI:

curl -4vvvu guest:guest -X DELETE 'localhost:15672/api/connections/My%20RabbitMQ%20Connection'

ПРИМЕЧАНИЕ: команда RabbitMQ отслеживает список рассылки rabbitmq-users и только иногда отвечает на вопросы в StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...