Przed HttpClient 4.3
W starszych wersjach Http C lient (przed 4.3), możemy skonfigurować, co klient robi z przekierowań w następujący sposób:
@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));
}
zauważy alternatywa API, które mogą być używane do konfigurowania zachowania przekierowania bez użycia ustalające rzeczywistą surowego http.protocol.handle -redirects parametr:
HttpClientParams.setRedirecting(params, false);
zauważyć również, że z przekierowań niepełnosprawnych, możemy teraz sprawdzić, że kod stanu HTTP Response to rzeczywiście 301 Przeniesiono na stałe - tak jak powinno być.
Po HttpClient 4.3
HttpClient 4.3 wprowadzono czystsze, bardziej wysoki poziom API zbudować i skonfigurować klienta:
@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));
}
Zauważ, że nowy API konfiguruje całą klientowi to zachowanie przekierowania - nie tylko indywidualne żądanie. Odwołanie: http://www.baeldung.com/httpclient-stop-follow-redirect
prostym przykładem [można znaleźć tutaj] (http://www.baeldung.com/httpclient-stop-follow-redirect) –
Od 4,3 Ta odpowiedź jest przestarzała, ZASTOSOWANIE odpowiedź przez Dawida Riccitelli – DSchmidt