If you attempt an API query requesting information about an object that contains a slash, you may get an error. Here's a curl example requesting the attributes of the "test_service_/boot" service on host "la-master01":
# curl -G --data-urlencode -s --insecure -u monitor:monitor "https://localhost/api/config/service/la-master01;test_service_/boot"
This fails:
{
"error": "Invalid request",
"full_error": "Please visit https://localhost/api/help with a browser to see documentation"
}
The solution to this is to not only url-encode the slash once ("%2F"), but url-encode the url-encoded string ("%252F"). Meaning, instead of passing this URL:
https://localhost/api/config/service/la-master01;test_service_/boot
Pass this:
https://localhost/api/config/service/la-master01;test_service_%252Fboot
Response:
{ "host_name": "la-master01", "service_description": "test_service_/boot", "check_command": "check_dummy", "check_command_args": "1", "template": "default-service", "register": true, "file_id": "etc/services.cfg", (...)
Comments
0 comments
Please sign in to leave a comment.