从Apache HTTPClient Basic Auth获取意外的401

时间:2010-09-28 00:49:38

标签: java httpclient

我正在尝试使用example from the site使用Apache HTTPClient 4.x进行基本身份验证,唯一的变化是我已经将一些细节提取到常量中,但是我没有得到结果我是希望。

即,随着日志记录调试,我得到:“DEBUG主客户端.DefaultHttpClient:1171 - 找不到凭据”,然后是来自服务器的401错误。

我已手动验证我配置的凭据是否正确,并且“找不到凭据”消息让我相信凭据从未在请求​​中传递。

对我可能做错了什么的想法?

DefaultHttpClient httpClient = new DefaultHttpClient();

    httpClient.getCredentialsProvider().setCredentials(
            new AuthScope(API_HOST, API_PORT),
            new UsernamePasswordCredentials(API_USERNAME, API_PASSWORD));

    HttpGet httpget = new HttpGet(API_TEST_URL);

    System.out.println("executing request" + httpget.getRequestLine());
    HttpResponse response = httpClient.execute(httpget);
    HttpEntity entity = response.getEntity();

    System.out.println("----------------------------------------");
    System.out.println(response.getStatusLine());
    if (entity != null) {
        System.out.println("Response content length: " + entity.getContentLength());
    }
    if (entity != null) {
        entity.consumeContent();
    }

    httpClient.getConnectionManager().shutdown();

1 个答案:

答案 0 :(得分:4)

您确定AuthScope设置正确吗?尝试这样设置只是为了看问题是否存在

new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT)