首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rabbitmq HTTP API请求UnAuthorized

Rabbitmq HTTP API请求UnAuthorized
EN

Stack Overflow用户
提问于 2012-05-18 14:15:27
回答 1查看 3.1K关注 0票数 4

我正在尝试使用http api请求创建一个新的交换。我用来创建交换的网址是,http://guest:guest@localhost:55672/api/exchanges/%2F/myexq1,但它给我的错误是401unsured。我正在使用chrome rest客户端来完成这个请求。可能的原因是什么?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-19 14:35:36

我已经用其他方法解决了这个问题。使用URL http://guest:guest@localhost:55672/api/exchanges/%2F/myexq1时出现错误。但是为了实现我的目标,我写了一个小类。代码如下:

代码语言:javascript
复制
        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是:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10647631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档