Базовая аутентификация Java httpClient 4.3.6 с полным URI и схемойJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Базовая аутентификация Java httpClient 4.3.6 с полным URI и схемой

Сообщение Anonymous »

Что я хочу:
Отправить запрос GET с приоритетной базовой аутентификацией.

Запрос выглядит примерно так:

Код: Выделить всё

/app/process?job=doSomething&param=value1,value2
тогда как startURL всегда является ссылкой https, зависит от среды.

Выглядит примерно так:
https://testABC.com
https://prodABC.com

startURL также помещается в файл свойств, как и для разных сред.< /p>

Что я изучал:
http://www.baeldung.com/httpclient-4-ba ... entication

http://www.java-tips.org/other-api-tips ... ation.html

http://hc.apache.org/httpcomComponents- ... ation.java

http://hc.apache.org/httpcomComponents- ... ation.html

Все это содержит

Код: Выделить всё

 HttpHost targetHost = new HttpHost("hostname", portnumber, "scheme");
Именно с этим у меня возникли проблемы. Этот метод также является единственным, который позволяет указать схему «https».
Одна из проблем заключается в том, что я не знаю номера порта. Я думаю (?) Я, вероятно, мог бы просто указать -1 для порта по умолчанию, чтобы он работал, но даже помимо того, что у меня также нет имени хоста, только вышеупомянутый startURL. Я не хочу каждый раз анализировать это дополнительно, но я также не хочу добавлять еще одно свойство только для имени хоста.

Я покопался и нашел этот фрагмент, который выглядит именно так, как мне нужно:

Код: Выделить всё

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://foo.com/bar");
httpGet.addHeader(BasicScheme.authenticate(
new UsernamePasswordCredentials("user", "password"),
"UTF-8", false));

HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity responseEntity = httpResponse.getEntity();
из HTTP-запросов с базовой аутентификацией

Он предоставляет полный URL-адрес запроса, просто добавляет базовый заголовок и выполняет не требуется указывать какой-либо порт. Только то, что это устарело с версии 4.2:

Код: Выделить всё

Deprecated. (4.2) Use ContextAwareAuthScheme.authenticate( Credentials, HttpRequest, org.apache.http.protocol.HttpContext)
Мне не удалось найти ни одного примера использования этого метода для возврата основного заголовка аутентификации. Ему также нужен контекст в качестве параметра, которого нет в приведенном выше фрагменте. Я действительно понятия не имею, как это следует использовать.

Итак, что я хочу знать конкретно:
Я просто хочу настроить запрос с полной ссылкой, содержащей все, что есть, например:

Код: Выделить всё

https://testABC.com/app/process?job=doSomething&param=value1,value2
и просто укажите это в качестве параметра для запроса, выполняющего упреждающую базовую аутентификацию.

Есть ли способ сделать это, не раскапывая устаревшие методы, и как это выглядит?

Подробнее здесь: https://stackoverflow.com/questions/283 ... and-scheme
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»