2017-07-03 2 views
0

ich einen Frühling Boot-Anwendung bin die Schaffung und ich möchte einen Austausch über Rest api erstellen:RabbitMQ REST-API Erstellen von Exchange fehlgeschlagen

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); 

Jedoch habe ich den Fehler immer:

PUT request for "http://localhost:15672/api/exchanges/%252f/my-new-exchange-new" resulted in 404 (Not Found); invoking error handler 

Könnten Sie Bitte hilf mir mit einem Hinweis? Vielen Dank!

Sie können es versuchen, wenn Sie hier wollen aus: https://github.com/pkid/rabbittest

Antwort

1

Das Problem höchstwahrscheinlich die gegebenen von den RestTemplate auf Ihre uri Variable angewandt URL-Codierung ist die %252f in dem Fehler zurückgegeben. Um zu vermeiden, dass, müssen Sie RestTemplate Methoden verwenden, die mit URI arbeiten und sagen, dass es die URL zu übernehmen ist bereits codiert:

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); 
+0

Danke, das ist es! Owesome! – Yashu

Verwandte Themen