I have curl command:
curl -i -u guest:guest -H "content-type:application/json"
-XPUT \ http://localhost:15672/api/traces/%2f/my-trace \
-d'{"format":"text","pattern":"#"}'
And I want to create HTTP Request in Java API which will do the same thing. This curl command can be found in this README. It is used to start recording log on RabbitMQ. Response is not important.
For now I created something like this (I've deleted less important lines i.e. with catching exception etc.), but unfortunately it doesn't work:
url = new URL("http://localhost:15672/api/traces/%2f/my-trace");
uc = url.openConnection();
uc.setRequestProperty("Content-Type", "application/json");
uc.setRequestProperty("format","json");
uc.setRequestProperty("pattern","#")
String userpass = "guest:guest";
String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
uc.setRequestProperty ("Authorization", basicAuth);
two problems that i can see:
also, when you do
userpass.getBytes()
you are getting the bytes using the default platform character encoding. this may or may not be the encoding that you desire. better to use an explicit character encoding (presumably the one the server is expecting).This is final solution: