Right way to close CloseableHttpResponse/CloseableHttpClient

It has been explained in detail in the docs here.
Quoting the pseudo code from the docs here's a typical way to allocate/deallocate an instance of CloseableHttpClient:

try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
    <...>
}

The same applies to CloseableHttpResponse :

try (CloseableHttpResponse response = httpclient.execute(httpget)) {
    <...>
}

Now, about the close method in CloseableHttpClient. CloseableHttpClient is an abstract class that implements Closeable interface. That is, although it doesn't have a close method itself the classes that extend it are required to implement the close method. One class is InternalHttpClient. You can check the source code for the details.

Before Java7, explicit close would be required:

CloseableHttpClient httpclient = HttpClients.createDefault();
try {
    <...>
} finally {
    httpclient.close();
}

CloseableHttpResponse response = httpclient.execute(httpget);
try {
    <...>
} finally {
    response.close();
}

You can avoid the finally by using the try(resource)

try (CloseableHttpResponse response = httpclient.execute(httpGet)) { ... }