Kopieren Sie den Codecode wie folgt:
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
öffentliche Klasse HttpClientDemo {
/**
* Rufen Sie die URL-Informationen nach der Umleitung ab
* @see HttpClient übernimmt standardmäßig automatisch die Client-Umleitung
* @see, das heißt, nach dem Zugriff auf Webseite A gibt HttpClient automatisch den Inhalt von Webseite B zurück, vorausgesetzt, es wird auf Webseite B umgeleitet
* @see Wenn Sie die Adresse von Webseite B erhalten möchten, müssen Sie das HttpContext-Objekt verwenden. HttpContext wird tatsächlich vom Client verwendet, um Statusinformationen in mehreren Anforderungs- und Antwortinteraktionen zu verwalten.
* @see Wir können HttpContext auch verwenden, um einige von uns benötigte Informationen zu speichern, damit wir diese Informationen zur Verwendung bei der nächsten Anfrage herausnehmen können.
*/
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");
versuchen {
// Übergeben Sie das HttpContext-Objekt als Parameter an die Methodeexecute (), dann speichert HttpClient die Statusinformationen während des Anforderungs-Antwort-Interaktionsprozesses im HttpContext
HttpResponse-Antwort = httpClient.execute(httpGet, httpContext);
//Erhalten Sie die Host-Adressinformationen nach der Umleitung, also „http://127.0.0.1:8088“
HttpHost targetHost = (HttpHost)httpContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
//Rufen Sie den URI des tatsächlichen Anforderungsobjekts ab, das nach der Umleitung „/blog/admin/login.jsp“ ist
HttpUriRequest realRequest = (HttpUriRequest)httpContext.getAttribute(ExecutionContext.HTTP_REQUEST);
System.out.println("Hostadresse:" + targetHost);
System.out.println("URI-Informationen:" + realRequest.getURI());
HttpEntity-Entity = Response.getEntity();
if(null != Entität){
System.out.println("Antwortinhalt:" + EntityUtils.toString(entity, ContentType.getOrDefault(entity).getCharset()));
EntityUtils.consume(entity);
}
} Catch (Ausnahme e) {
e.printStackTrace();
}Endlich{
httpClient.getConnectionManager().shutdown();
}
}
}