Java 如何从CloseableHttpResponse获取URI

Java 如何从CloseableHttpResponse获取URI,java,apache-httpclient-4.x,Java,Apache Httpclient 4.x,当我为web请求的响应获取CloseableHttpResponse对象,并且请求成功时,如何获取响应的URI?可以从与消息交换关联的HttpContext获取此信息 CloseableHttpClient client = HttpClients.custom() .build(); HttpClientContext clientContext = HttpClientContext.create(); try (CloseableHttpResponse response

当我为web请求的响应获取CloseableHttpResponse对象,并且请求成功时,如何获取响应的URI?

可以从与消息交换关联的HttpContext获取此信息

CloseableHttpClient client = HttpClients.custom()
        .build();
HttpClientContext clientContext = HttpClientContext.create();
try (CloseableHttpResponse response = client.execute(new HttpGet("http://google.com/"), clientContext)) {
    System.out.println(response.getStatusLine());
    HttpEntity entity = response.getEntity();
    EntityUtils.consume(entity);

    final HttpRequest request = clientContext.getRequest();
    System.out.println(request.getRequestLine().getUri());
    System.out.println(request.getFirstHeader("Host"));
    final List<URI> redirectLocations = clientContext.getRedirectLocations();
    System.out.println(redirectLocations);
}

为什么?你已经忘了?无论如何,你不能。它不在那里。如果存在重定向,响应uri可能与请求uri不同。我认为这是请求uri,而不是响应uri。如果请求uri中有重定向,它们就不同了。@DavidThielen HTTP中没有响应uri。