RabbitMQ Rest API创建交换失败
我正在创建一个Spring启动应用程序,并希望通过rest api创建一个exchange:RabbitMQ Rest API创建交换失败,rabbitmq,Rabbitmq,我正在创建一个Spring启动应用程序,并希望通过rest api创建一个exchange: RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); String auth = "guest:guest"; byte[] enco
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
String auth = "guest:guest";
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")) );
String authHeader = "Basic " + new String( encodedAuth );
headers.set( "Authorization", authHeader );
String uri = "http://localhost:15672/api/exchanges/%2f/my-new-exchange-new";
String input = "{\"type\":\"direct\",\"durable\":\"true\"}";
HttpEntity<String> entity = new HttpEntity<String>(input,headers);
ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.PUT, entity, String.class);
System.out.println(response);
你能帮我一个提示吗?谢谢大家!
如果需要,您可以在此处尝试:问题很可能是RestTemplate在错误中返回%252f的情况下应用于uri变量的URL编码。为了避免这种情况,您需要使用与URI一起工作的RestTemplate方法,并告诉它假定URL已经编码:
String uri = "http://localhost:15672/api/exchanges/%2F/my-new-exchange-new";
restTemplate.exchange(UriComponentsBuilder.fromHttpUrl(uri)
.build(true)
.toUri(), HttpMethod.PUT, entity, String.class);
谢谢,就是这个!太好了!
String uri = "http://localhost:15672/api/exchanges/%2F/my-new-exchange-new";
restTemplate.exchange(UriComponentsBuilder.fromHttpUrl(uri)
.build(true)
.toUri(), HttpMethod.PUT, entity, String.class);