4

http api リクエストを使用して新しい交換を作成しようとしています。Exchange の作成に使用した URL はhttp://guest:guest@localhost:55672/api/exchanges/%2F/myexq1ですが、401 Unauthorized というエラーが表示されます。このリクエストを行うためにクロムレストクライアントを使用しています。その理由は何ですか?どんな助けでも大歓迎です。

4

1 に答える 1

2

他の方法で問題を解決してください。URL の使用中にエラーが発生しましたhttp://guest:guest@localhost:55672/api/exchanges/%2F/myexq1。しかし、私の目標を達成するために、私は小さなクラスを書きました。コードは次のとおりです。

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

私が含めたJarは次のとおりです。

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
于 2012-05-19T06:35:35.843 に答える