2012-05-18 2 views
4

http api 요청을 사용하여 새 교환을 만들려고합니다. Exchange를 만들 때 사용한 URL은 http://guest:[email protected]:55672/api/exchanges/%2F/myexq1이지만 인증되지 않은 401 오류가 발생합니다. 나는이 요청을하기 위해 크롬 레스트 클라이언트를 사용하고있다. 그 이유는 무엇일까요? 어떤 도움을 주시면 감사하겠습니다.Rabbitmq HTTP API 요청 UnAuthorized

+0

당신이 방화벽 권한을 확인하신 다음 코드는? – robthewolf

+0

내 방화벽이 꺼져 있습니다. –

답변

2

다른 방법으로 문제를 해결하십시오. http://guest:[email protected]:55672/api/exchanges/%2F/myexq1 URL을 사용하는 동안 오류가 발생했습니다. 그러나 나의 목표를 달성하기 위해 나는 작은 반원을 썼다. 내가 포함했다

 DefaultHttpClient httpClient = new DefaultHttpClient();   
     HttpHost targetHost = new HttpHost("xx.xx.xx.xx", 55672, "http"); 

     HttpPut request = new HttpPut(
       "/api/queues/%2F/q1"); 

     httpClient.getCredentialsProvider().setCredentials(
       new AuthScope(targetHost.getHostName(), targetHost.getPort()), 
       new UsernamePasswordCredentials("guest", "guest")); 

     AuthCache authCache = new BasicAuthCache(); 
     BasicScheme basicAuth = new BasicScheme(); 
     authCache.put(targetHost, basicAuth); 
     BasicHttpContext localcontext = new BasicHttpContext(); 
     localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache); 

     request.addHeader("Content-Type", "application/json"); 

     StringEntity input = new StringEntity(
       "{\"vhost\":\"/\",\"durable\":\"false\",\"auto_delete\":\"false\",\"arguments\":{}}"); 

     request.setEntity(input); 

     HttpResponse response = httpClient.execute(targetHost, request, localcontext); 

항아리는 다음과 같습니다 :

commons-codec-1.4 
commons-logging-1.1.1 
httpclient-4.1.3 
httpclient-cache-4.1.3 
httpcore-4.1.4 
httpmime-4.1.3 
+0

이것은 더 이상 작동하지 않습니다. :(새로운 솔루션이 있습니까? Tnx –