首页 > 解决方案 > 如何从 CloseableHttpResponse 获取 URI

问题描述

当我得到一个CloseableHttpResponse响应 web 请求的对象,并且请求成功时,如何获取响应的URI

标签: javaapache-httpclient-4.x

解决方案


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);
}

推荐阅读