Я пытаюсь перейти по ссылке 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, но я не могу найти пример этого!