Скопируйте код кода следующим образом:
импортировать org.apache.http.HttpEntity;
импортировать org.apache.http.HttpHost;
импортировать org.apache.http.HttpResponse;
импортировать org.apache.http.client.HttpClient;
импортировать org.apache.http.client.methods.HttpGet;
импортировать org.apache.http.client.methods.HttpUriRequest;
импортировать org.apache.http.entity.ContentType;
импортировать org.apache.http.impl.client.DefaultHttpClient;
импортировать org.apache.http.protocol.BasicHttpContext;
импортировать org.apache.http.protocol.ExecutionContext;
импортировать org.apache.http.protocol.HttpContext;
импортировать org.apache.http.util.EntityUtils;
общественный класс HttpClientDemo {
/**
* Получить информацию об URL-адресе после перенаправления
* @see HttpClient по умолчанию автоматически обрабатывает перенаправление клиента.
* @see, то есть после доступа к веб-странице A, если она перенаправлена на веб-страницу B, HttpClient автоматически вернет содержимое веб-страницы B.
* @see Если вы хотите получить адрес веб-страницы B, вам нужно использовать объект HttpContext, который фактически используется клиентом для хранения информации о состоянии в нескольких взаимодействиях запросов и ответов.
* @see Мы также можем использовать HttpContext для хранения некоторой необходимой нам информации, чтобы мы могли извлечь эту информацию для использования во время следующего запроса.
*/
общественная статическая сила getRedirectInfo(){
HttpClient httpClient = новый DefaultHttpClient();
HttpContext httpContext = новый BasicHttpContext();
HttpGet httpGet = новый HttpGet("http://127.0.0.1:8088/blog/main.jsp");
пытаться {
//Передаем объект HttpContext в качестве параметра методу Execute(), тогда HttpClient сохранит информацию о состоянии во время процесса взаимодействия с ответом на запрос в HttpContext.
Ответ HttpResponse = httpClient.execute(httpGet, httpContext);
//Получаем информацию об адресе хоста после перенаправления, то есть «http://127.0.0.1:8088»
HttpHost targetHost = (HttpHost)httpContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
//Получаем URI фактического объекта запроса, которым является "/blog/admin/login.jsp" после перенаправления
HttpUriRequest realRequest = (HttpUriRequest)httpContext.getAttribute(ExecutionContext.HTTP_REQUEST);
System.out.println("Адрес хоста:" + targetHost);
System.out.println("Информация URI:" + realRequest.getURI());
Объект HttpEntity = response.getEntity();
если (ноль! = сущность) {
System.out.println("Содержимое ответа:" + EntityUtils.toString(entity, ContentType.getOrDefault(entity).getCharset()));
EntityUtils.consume(сущность);
}
} catch (Исключение е) {
е.printStackTrace();
}окончательно{
httpClient.getConnectionManager().shutdown();
}
}
}