Copiez le code comme suit :
importer org.apache.http.HttpEntity ;
importer org.apache.http.HttpHost ;
importer org.apache.http.HttpResponse ;
importer org.apache.http.client.HttpClient ;
importer org.apache.http.client.methods.HttpGet ;
importer org.apache.http.client.methods.HttpUriRequest ;
importer org.apache.http.entity.ContentType ;
importer org.apache.http.impl.client.DefaultHttpClient ;
importer org.apache.http.protocol.BasicHttpContext ;
importer org.apache.http.protocol.ExecutionContext ;
importer org.apache.http.protocol.HttpContext ;
importer org.apache.http.util.EntityUtils ;
classe publique HttpClientDemo {
/**
* Obtenez les informations sur l'URL après la redirection
* @see HttpClient gérera automatiquement la redirection client par défaut
* @see c'est-à-dire qu'après avoir accédé à la page Web A, en supposant qu'elle soit redirigée vers la page Web B, HttpClient renverra automatiquement le contenu de la page Web B.
* @see Si vous souhaitez obtenir l'adresse de la page Web B, vous devez utiliser l'objet HttpContext qui est en fait utilisé par le client pour conserver les informations d'état dans plusieurs interactions de demande et de réponse.
* @see Nous pouvons également utiliser HttpContext pour stocker certaines informations dont nous avons besoin, afin que nous puissions extraire ces informations pour les utiliser lors de la prochaine requête.
*/
public static void getRedirectInfo(){
HttpClient httpClient = new DefaultHttpClient();
HttpContext httpContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://127.0.0.1:8088/blog/main.jsp");
essayer {
//Passez l'objet HttpContext en tant que paramètre à la méthodeexecute(), puis HttpClient stockera les informations d'état pendant le processus d'interaction de réponse à la demande dans HttpContext
Réponse HttpResponse = httpClient.execute(httpGet, httpContext);
//Obtenir les informations sur l'adresse de l'hôte après la redirection, c'est-à-dire "http://127.0.0.1:8088"
HttpHost targetHost = (HttpHost)httpContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
//Obtenir l'URI de l'objet de requête réel, qui est "/blog/admin/login.jsp" après la redirection
HttpUriRequest realRequest = (HttpUriRequest)httpContext.getAttribute(ExecutionContext.HTTP_REQUEST);
System.out.println("Adresse de l'hôte :" + targetHost);
System.out.println("Informations URI :" + realRequest.getURI());
Entité HttpEntity = réponse.getEntity();
if(null != entité){
System.out.println("Contenu de la réponse :" + EntityUtils.toString(entity, ContentType.getOrDefault(entity).getCharset()));
EntityUtils.consume(entité);
}
} attraper (Exception e) {
e.printStackTrace();
}enfin{
httpClient.getConnectionManager().shutdown();
}
}
}