2013-12-01 3 views
0

Я только что обновился до org.apache.httpcomponents.httpclient 4.3. Ранее я создал клиент и сделал упреждающие аутентификации, как это:Как пройти проверку подлинности с помощью httpclient 4.3

final HttpClient client = new DefaultHttpClient(); 
final HttpRequestBase request = new HttpGet(url); 
request.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials(username,password), "UTF-8", false)); 

Теперь, когда это осуждается я должен создать клиент и аутентификацию, как это:

HttpClientBuilder clientBuilder = HttpClientBuilder.create(); 
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); 
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password)); 

clientBuilder = clientBuilder.setDefaultCredentialsProvider(credentialsProvider); 

Однако вместо того, чтобы аутентифицировать и сделать успешное ПОЛУЧЕНИЕ Я получаю 302 в ответ. Я думаю, что это можно устранить, установив предварительную аутентификацию, но я не могу найти, как это сделать. Может быть, у меня есть аутентификация в этом втором примере, все неправильно?

Могу ли я получить некоторые указатели, пожалуйста?

+0

Возможный дубликат [Httpclient 4, ошибка 302. Как перенаправить?] (Http://stackoverflow.com/questions/3658721/httpclient-4-error-302-how-to-redirect) –

ответ

0

Неясно, действительно ли это настоящая проблема.

HTTP 302 - это перенаправление. Вы должны следовать переадресации.

+0

Спасибо. Я это понимаю. С предыдущим клиентским кодом мне не нужно было следовать перенаправлению, и я хочу получить такое же поведение. –

+0

@PaulGrenyer: вся версия HttpClient версии 4.x автоматически перенаправляется по умолчанию. Вы не можете получать статус 302 в GET, если перенаправления явно отключены. Либо детали являются неполными/неправильными, либо что-то просто не так. Проводной журнал сеанса очень помог – oleg

Смежные вопросы