private HttpRequest<Buffer> makeHttpClientRequest(final Request request)
      throws MalformedURLException {
    final URL url = new URL(request.url());
    final String host = url.getHost();
    final String requestUri = url.getFile();

    int port;
    if (url.getPort() > -1) {
      port = url.getPort();
    } else if (url.getProtocol().equalsIgnoreCase("https")) {
      port = 443;
    } else {
      port = HttpClientOptions.DEFAULT_DEFAULT_PORT;
    }

    HttpRequest<Buffer> httpClientRequest =
        webClient
            .request(HttpMethod.valueOf(request.httpMethod().name()), port, host, requestUri)
            .timeout(timeout);

    /* Add headers to request */
    for (final Map.Entry<String, Collection<String>> header : request.headers().entrySet()) {
      httpClientRequest = httpClientRequest.putHeader(header.getKey(), header.getValue());
    }

    return requestPreProcessor.apply(httpClientRequest);
  }
Executes HTTP request and returns {@link Future} with response.

@param request request
@return future of HTTP response
vertx/feign-vertx/src/main/java/feign/vertx/VertxHttpClient.java