Java Apache HTTP 401 ответ возвращен с правильными учетными данными - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь перейти по ссылке REST API, используя Apache HttpClient, но я получаю сообщение об ошибке 401. Я могу войти, когда я go по URL-адресу в браузере, после запроса пароля. Код, который я использую ниже:

        CredentialsProvider provider = new BasicCredentialsProvider();
        UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(creds.get(0), creds.get(1));
        provider.setCredentials(AuthScope.ANY, credentials);

        AuthCache authCache = new BasicAuthCache();
        authCache.put(new HttpHost(uri.getHost(), uri.getPort(), "https"), new BasicScheme());

        BasicHttpContext context = new BasicHttpContext();
        context.setAttribute(ClientContext.CREDS_PROVIDER, provider);
        context.setAttribute(ClientContext.AUTH_CACHE, authCache);

        DefaultHttpClient client = new DefaultHttpClient();
        client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler());
        client.setCredentialsProvider(provider);
        HttpResponse response = null;
        try
        {
            // response = client.execute(new HttpGet(uri));
            response = client.execute(new HttpGet(uri), context);
        }
        catch(IOException e)
        {
            logger.error("Error running authenticated get request: " + e);
        }

Я использую HttpClient 4.2.3 и, к сожалению, я не могу его обновить.

Любая помощь будет принята! Спасибо!

РЕДАКТИРОВАТЬ: Оказывается, мне нужно предоставить сертификат, как -cacert в curl, но я не могу найти пример этого!

1 Ответ

0 голосов
/ 28 апреля 2020

Поскольку вам необходимо предоставить сертификат, может быть, это может помочь:

http://hc.apache.org/httpcomponents-client-4.2.x/httpclient/examples/org/apache/http/examples/client/ClientCustomSSL.java

Я думаю, этот пример соответствует 4.2.3.

...