public ClientHttpResponse execute(HttpUriRequest request,
Function<HttpClientBuilder, Void> configurator,
AbstractHttpRequest r) throws IOException {
final HttpClientBuilder clientBuilder = getDefaultHttpClientBuilder();
configurator.apply(clientBuilder);
CloseableHttpClient httpClient = clientBuilder.build();
if (r.isPreemptiveBasicAuth()) {
return new AdaptingResponse(httpClient, httpClient.execute(request, r.getHttpClientContext()));
} else {
return new AdaptingResponse(httpClient, httpClient.execute(request));
}