Vor Httpclient 4.3
In älteren Versionen der Http C lient (vor 4.3), können wir konfigurieren, was der Kunde hat mit Umleitungen wie folgt:
@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));
}
Beachten Sie die alternative API, die verwendet werden können, die Umleitung Verhalten ohne Setzen des tatsächlichen Roh http.protocol.handle konfigurieren -redirects Parameter:
HttpClientParams.setRedirecting(params, false);
Beachten sie auch, dass mit Folge deaktiviert umleitet, können wir jetzt prüfen, ob der HTTP-Antwortstatuscode in der Tat 301 dauerhaft verschoben ist - wie es sein sollte.
Nach Httpclient 4,3
Httpclient 4.3 eingeführt einem sauberen, mehr High Level-API zu bauen und konfigurieren Sie den Client:
@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));
}
Beachten Sie, dass die neue API den gesamten Client mit dieser konfiguriert Redirect-Verhalten - nicht nur die individuelle Anfrage. Referenz: http://www.baeldung.com/httpclient-stop-follow-redirect
ein einfaches Beispiel hierfür (http://www.baeldung.com/httpclient-stop-follow-redirect) –
Ab 4.3 diese Antwort ist veraltet Antwort Verwendung Verwendung von David [Hier finden Sie] Riccitelli – DSchmidt