Перед HttpClient 4,3
В старых версиях Http C lient (до 4.3), мы можем настроить то, что клиент делает с переадресовывает следующим образом:
@Test
public void givenRedirectsAreDisabled_whenConsumingUrlWhichRedirects_thenNotRedirected()
throws ClientProtocolException, IOException {
DefaultHttpClient instance = new DefaultHttpClient();
HttpParams params = new BasicHttpParams();
params.setParameter(ClientPNames.HANDLE_REDIRECTS, false);
// HttpClientParams.setRedirecting(params, false); // alternative
HttpGet httpGet = new HttpGet("http:/testabc.com");
httpGet.setParams(params);
CloseableHttpResponse response = instance.execute(httpGet);
assertThat(response.getStatusLine().getStatusCode(), equalTo(301));
}
Обратите внимание на альтернативный API, который может использоваться для настройки поведения переадресации без установки фактического сырого http.protocol.handle -redirects параметр:
HttpClientParams.setRedirecting(params, false);
также обратите внимание, что, с последующей перенаправляет инвалидов, теперь мы можем проверить, что код состояния ответа HTTP действительно 301 Moved постоянно - как это должно быть.
После HttpClient 4,3
HttpClient 4,3 введен очиститель, более высокий уровень API для создания и настройки клиента:
@Test
public void givenRedirectsAreDisabled_whenConsumingUrlWhichRedirects_thenNotRedirected()
throws ClientProtocolException, IOException {
HttpClient instance = HttpClientBuilder.create().disableRedirectHandling().build();
HttpResponse response = instance.execute(new HttpGet("http://testabc.com"));
assertThat(response.getStatusLine().getStatusCode(), equalTo(301));
}
Обратите внимание, что новый API настраивает весь клиент с этим перенаправление - не только индивидуальный запрос. Код: http://www.baeldung.com/httpclient-stop-follow-redirect
простой пример этого [можно найти здесь] (http://www.baeldung.com/httpclient-stop-follow-redirect) –
На 4.3 этот ответ является устаревшим, используйте использовать ответ Давида Riccitelli – DSchmidt