Package io.vertx.ext.web.client

## Interface WebClient

- All Known Subinterfaces:
    `OAuth2WebClient`, `WebClientSession`

      public interface WebClient

  An asynchronous HTTP / HTTP/2 client called `WebClient`.

  The web client makes easy to do HTTP request/response interactions with a web server, and provides advanced features like:

  - Json body encoding / decoding
  - request/response pumping
  - error handling

  The web client does not deprecate the `HttpClient`, it is actually based on it and therefore inherits its configuration and great features like pooling. The `HttpClient` should be used when fine grained control over the HTTP requests/response is necessary.

  Author:
    Julien Viet

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Close the client.
    `static WebClient` | `create​(Vertx vertx)` | Create a web client using the provided `vertx` instance and default options.
    `static WebClient` | `create​(Vertx vertx, WebClientOptions options)` | Create a web client using the provided `vertx` instance and default pooling options.
    `static WebClient` | `create​(Vertx vertx, WebClientOptions options, PoolOptions poolOptions)` | Create a web client using the provided `vertx` instance.
    `default HttpRequest<Buffer>` | `delete​(int port, String host, UriTemplate requestURI)` | Create an HTTP DELETE request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `delete​(int port, String host, String requestURI)` | Create an HTTP DELETE request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `delete​(UriTemplate requestURI)` | Create an HTTP DELETE request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `delete​(String requestURI)` | Create an HTTP DELETE request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `delete​(String host, UriTemplate requestURI)` | Create an HTTP DELETE request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `delete​(String host, String requestURI)` | Create an HTTP DELETE request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `deleteAbs​(UriTemplate absoluteURI)` | Create an HTTP DELETE request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `deleteAbs​(String absoluteURI)` | Create an HTTP DELETE request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `get​(int port, String host, UriTemplate requestURI)` | Create an HTTP GET request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `get​(int port, String host, String requestURI)` | Create an HTTP GET request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `get​(UriTemplate requestURI)` | Create an HTTP GET request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `get​(String requestURI)` | Create an HTTP GET request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `get​(String host, UriTemplate requestURI)` | Create an HTTP GET request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `get​(String host, String requestURI)` | Create an HTTP GET request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `getAbs​(UriTemplate absoluteURI)` | Create an HTTP GET request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `getAbs​(String absoluteURI)` | Create an HTTP GET request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `head​(int port, String host, UriTemplate requestURI)` | Create an HTTP HEAD request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `head​(int port, String host, String requestURI)` | Create an HTTP HEAD request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `head​(UriTemplate requestURI)` | Create an HTTP HEAD request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `head​(String requestURI)` | Create an HTTP HEAD request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `head​(String host, UriTemplate requestURI)` | Create an HTTP HEAD request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `head​(String host, String requestURI)` | Create an HTTP HEAD request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `headAbs​(UriTemplate absoluteURI)` | Create an HTTP HEAD request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `headAbs​(String absoluteURI)` | Create an HTTP HEAD request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `patch​(int port, String host, UriTemplate requestURI)` | Create an HTTP PATCH request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `patch​(int port, String host, String requestURI)` | Create an HTTP PATCH request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `patch​(UriTemplate requestURI)` | Create an HTTP PATCH request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `patch​(String requestURI)` | Create an HTTP PATCH request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `patch​(String host, UriTemplate requestURI)` | Create an HTTP PATCH request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `patch​(String host, String requestURI)` | Create an HTTP PATCH request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `patchAbs​(UriTemplate absoluteURI)` | Create an HTTP PATCH request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `patchAbs​(String absoluteURI)` | Create an HTTP PATCH request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `post​(int port, String host, UriTemplate requestURI)` | Create an HTTP POST request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `post​(int port, String host, String requestURI)` | Create an HTTP POST request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `post​(UriTemplate requestURI)` | Create an HTTP POST request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `post​(String requestURI)` | Create an HTTP POST request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `post​(String host, UriTemplate requestURI)` | Create an HTTP POST request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `post​(String host, String requestURI)` | Create an HTTP POST request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `postAbs​(UriTemplate absoluteURI)` | Create an HTTP POST request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `postAbs​(String absoluteURI)` | Create an HTTP POST request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `put​(int port, String host, UriTemplate requestURI)` | Create an HTTP PUT request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `put​(int port, String host, String requestURI)` | Create an HTTP PUT request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `put​(UriTemplate requestURI)` | Create an HTTP PUT request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `put​(String requestURI)` | Create an HTTP PUT request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `put​(String host, UriTemplate requestURI)` | Create an HTTP PUT request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `put​(String host, String requestURI)` | Create an HTTP PUT request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `putAbs​(UriTemplate absoluteURI)` | Create an HTTP PUT request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `putAbs​(String absoluteURI)` | Create an HTTP PUT request to send to the server using an absolute URI, specifying a response handler to receive the response
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, int port, String host, UriTemplate requestURI)` | Create an HTTP request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, int port, String host, String requestURI)` | Create an HTTP request to send to the server at the specified host and port.
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, RequestOptions options)` | Create an HTTP request to send to the server at the specified host and port.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, int port, String host, UriTemplate requestURI)` | Like `request(HttpMethod, int, String, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the `port` and `host` parameters.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, int port, String host, String requestURI)` | Like `request(HttpMethod, int, String, String)` using the `serverAddress` parameter to connect to the server instead of the `port` and `host` parameters.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, RequestOptions options)` | Like `request(HttpMethod, RequestOptions)` using the `serverAddress` parameter to connect to the server instead of the `options` parameter.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, UriTemplate requestURI)` | Like `request(HttpMethod, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the default port and default host.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, String requestURI)` | Like `request(HttpMethod, String)` using the `serverAddress` parameter to connect to the server instead of the default port and default host.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, String host, UriTemplate requestURI)` | Like `request(HttpMethod, String, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the default port and `host` parameter.
    `HttpRequest<Buffer>` | `request​(HttpMethod method, SocketAddress serverAddress, String host, String requestURI)` | Like `request(HttpMethod, String, String)` using the `serverAddress` parameter to connect to the server instead of the default port and `host` parameter.
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, UriTemplate requestURI)` | Create an HTTP request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, String requestURI)` | Create an HTTP request to send to the server at the default host and port.
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, String host, UriTemplate requestURI)` | Create an HTTP request to send to the server at the specified host and default port.
    `default HttpRequest<Buffer>` | `request​(HttpMethod method, String host, String requestURI)` | Create an HTTP request to send to the server at the specified host and default port.
    `HttpRequest<Buffer>` | `requestAbs​(HttpMethod method, SocketAddress serverAddress, UriTemplate absoluteURI)` | Like `requestAbs(HttpMethod, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the `absoluteURI` parameter.
    `HttpRequest<Buffer>` | `requestAbs​(HttpMethod method, SocketAddress serverAddress, String absoluteURI)` | Like `requestAbs(HttpMethod, String)` using the `serverAddress` parameter to connect to the server instead of the `absoluteURI` parameter.
    `default HttpRequest<Buffer>` | `requestAbs​(HttpMethod method, UriTemplate absoluteURI)` | Create an HTTP request to send to the server using an absolute URI
    `default HttpRequest<Buffer>` | `requestAbs​(HttpMethod method, String absoluteURI)` | Create an HTTP request to send to the server using an absolute URI
    `default Future<Boolean>` | `updateSSLOptions​(ClientSSLOptions options)` | Update the client with new SSL `options`, the update happens if the options object is valid and different from the existing options object.
    `Future<Boolean>` | `updateSSLOptions​(ClientSSLOptions options, boolean force)` | Update the client with new SSL `options`, the update happens if the options object is valid and different from the existing options object.
    `static WebClient` | `wrap​(HttpClient httpClient)` | Wrap an `httpClient` with a web client and default options.
    `static WebClient` | `wrap​(HttpClient httpClient, WebClientOptions options)` | Wrap an `httpClient` with a web client and default options.

- - ### Method Detail

    - #### create

          static WebClient create​(Vertx vertx)

      Create a web client using the provided `vertx` instance and default options.
      Parameters:
        `vertx` - the vertx instance
      Returns:
        the created web client

    - #### create

          static WebClient create​(Vertx vertx,
                                  WebClientOptions options)

      Create a web client using the provided `vertx` instance and default pooling options.
      Parameters:
        `vertx` - the vertx instance
        `options` - the Web Client options
      Returns:
        the created web client

    - #### create

          static WebClient create​(Vertx vertx,
                                  WebClientOptions options,
                                  PoolOptions poolOptions)

      Create a web client using the provided `vertx` instance.
      Parameters:
        `vertx` - the vertx instance
        `options` - the Web Client options
        `poolOptions` - the HTTP Client pool options
      Returns:
        the created web client

    - #### wrap

          static WebClient wrap​(HttpClient httpClient)

      Wrap an `httpClient` with a web client and default options.
      Parameters:
        `httpClient` - the `HttpClient` to wrap
      Returns:
        the web client

    - #### wrap

          static WebClient wrap​(HttpClient httpClient,
                                WebClientOptions options)

      Wrap an `httpClient` with a web client and default options.

      Only the specific web client portion of the `options` is used, the `HttpClientOptions` of the `httpClient` is reused.

      Parameters:
        `httpClient` - the `HttpClient` to wrap
        `options` - the Web Client options
      Returns:
        the web client

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              int port,
                                              String host,
                                              String requestURI)

      Create an HTTP request to send to the server at the specified host and port.
      Parameters:
        `method` - the HTTP method
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              int port,
                                              String host,
                                              UriTemplate requestURI)

      Create an HTTP request to send to the server at the specified host and port.
      Parameters:
        `method` - the HTTP method
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      int port,
                                      String host,
                                      String requestURI)

      Like `request(HttpMethod, int, String, String)` using the `serverAddress` parameter to connect to the server instead of the `port` and `host` parameters.

      The request host header will still be created from the `port` and `host` parameters.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      int port,
                                      String host,
                                      UriTemplate requestURI)

      Like `request(HttpMethod, int, String, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the `port` and `host` parameters.

      The request host header will still be created from the `port` and `host` parameters.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              String host,
                                              String requestURI)

      Create an HTTP request to send to the server at the specified host and default port.
      Parameters:
        `method` - the HTTP method
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              String host,
                                              UriTemplate requestURI)

      Create an HTTP request to send to the server at the specified host and default port.
      Parameters:
        `method` - the HTTP method
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      String host,
                                      String requestURI)

      Like `request(HttpMethod, String, String)` using the `serverAddress` parameter to connect to the server instead of the default port and `host` parameter.

      The request host header will still be created from the default port and `host` parameter.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      String host,
                                      UriTemplate requestURI)

      Like `request(HttpMethod, String, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the default port and `host` parameter.

      The request host header will still be created from the default port and `host` parameter.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              String requestURI)

      Create an HTTP request to send to the server at the default host and port.
      Parameters:
        `method` - the HTTP method
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              UriTemplate requestURI)

      Create an HTTP request to send to the server at the default host and port.
      Parameters:
        `method` - the HTTP method
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      String requestURI)

      Like `request(HttpMethod, String)` using the `serverAddress` parameter to connect to the server instead of the default port and default host.

      The request host header will still be created from the default port and default host.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      UriTemplate requestURI)

      Like `request(HttpMethod, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the default port and default host.

      The request host header will still be created from the default port and default host.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### request

          default HttpRequest<Buffer> request​(HttpMethod method,
                                              RequestOptions options)

      Create an HTTP request to send to the server at the specified host and port.
      Parameters:
        `method` - the HTTP method
        `options` - the request options
      Returns:
        an HTTP client request object

    - #### request

          HttpRequest<Buffer> request​(HttpMethod method,
                                      SocketAddress serverAddress,
                                      RequestOptions options)

      Like `request(HttpMethod, RequestOptions)` using the `serverAddress` parameter to connect to the server instead of the `options` parameter.

      The request host header will still be created from the `options` parameter.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### requestAbs

          default HttpRequest<Buffer> requestAbs​(HttpMethod method,
                                                 String absoluteURI)

      Create an HTTP request to send to the server using an absolute URI
      Parameters:
        `method` - the HTTP method
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### requestAbs

          default HttpRequest<Buffer> requestAbs​(HttpMethod method,
                                                 UriTemplate absoluteURI)

      Create an HTTP request to send to the server using an absolute URI
      Parameters:
        `method` - the HTTP method
        `absoluteURI` - the absolute URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### requestAbs

          HttpRequest<Buffer> requestAbs​(HttpMethod method,
                                         SocketAddress serverAddress,
                                         String absoluteURI)

      Like `requestAbs(HttpMethod, String)` using the `serverAddress` parameter to connect to the server instead of the `absoluteURI` parameter.

      The request host header will still be created from the `absoluteURI` parameter.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### requestAbs

          HttpRequest<Buffer> requestAbs​(HttpMethod method,
                                         SocketAddress serverAddress,
                                         UriTemplate absoluteURI)

      Like `requestAbs(HttpMethod, UriTemplate)` using the `serverAddress` parameter to connect to the server instead of the `absoluteURI` parameter.

      The request host header will still be created from the `absoluteURI` parameter.

      Use `SocketAddress.domainSocketAddress(String)` to connect to a unix domain socket server.

    - #### get

          default HttpRequest<Buffer> get​(String requestURI)

      Create an HTTP GET request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### get

          default HttpRequest<Buffer> get​(UriTemplate requestURI)

      Create an HTTP GET request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### get

          default HttpRequest<Buffer> get​(int port,
                                          String host,
                                          String requestURI)

      Create an HTTP GET request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### get

          default HttpRequest<Buffer> get​(int port,
                                          String host,
                                          UriTemplate requestURI)

      Create an HTTP GET request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### get

          default HttpRequest<Buffer> get​(String host,
                                          String requestURI)

      Create an HTTP GET request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### get

          default HttpRequest<Buffer> get​(String host,
                                          UriTemplate requestURI)

      Create an HTTP GET request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### getAbs

          default HttpRequest<Buffer> getAbs​(String absoluteURI)

      Create an HTTP GET request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### getAbs

          default HttpRequest<Buffer> getAbs​(UriTemplate absoluteURI)

      Create an HTTP GET request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### post

          default HttpRequest<Buffer> post​(String requestURI)

      Create an HTTP POST request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### post

          default HttpRequest<Buffer> post​(UriTemplate requestURI)

      Create an HTTP POST request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### post

          default HttpRequest<Buffer> post​(int port,
                                           String host,
                                           String requestURI)

      Create an HTTP POST request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### post

          default HttpRequest<Buffer> post​(int port,
                                           String host,
                                           UriTemplate requestURI)

      Create an HTTP POST request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### post

          default HttpRequest<Buffer> post​(String host,
                                           String requestURI)

      Create an HTTP POST request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### post

          default HttpRequest<Buffer> post​(String host,
                                           UriTemplate requestURI)

      Create an HTTP POST request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### postAbs

          default HttpRequest<Buffer> postAbs​(String absoluteURI)

      Create an HTTP POST request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### postAbs

          default HttpRequest<Buffer> postAbs​(UriTemplate absoluteURI)

      Create an HTTP POST request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absoluate URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### put

          default HttpRequest<Buffer> put​(String requestURI)

      Create an HTTP PUT request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### put

          default HttpRequest<Buffer> put​(UriTemplate requestURI)

      Create an HTTP PUT request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### put

          default HttpRequest<Buffer> put​(int port,
                                          String host,
                                          String requestURI)

      Create an HTTP PUT request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### put

          default HttpRequest<Buffer> put​(int port,
                                          String host,
                                          UriTemplate requestURI)

      Create an HTTP PUT request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### put

          default HttpRequest<Buffer> put​(String host,
                                          String requestURI)

      Create an HTTP PUT request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### put

          default HttpRequest<Buffer> put​(String host,
                                          UriTemplate requestURI)

      Create an HTTP PUT request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### putAbs

          default HttpRequest<Buffer> putAbs​(String absoluteURI)

      Create an HTTP PUT request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### putAbs

          default HttpRequest<Buffer> putAbs​(UriTemplate absoluteURI)

      Create an HTTP PUT request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### delete

          default HttpRequest<Buffer> delete​(String requestURI)

      Create an HTTP DELETE request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### delete

          default HttpRequest<Buffer> delete​(UriTemplate requestURI)

      Create an HTTP DELETE request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### delete

          default HttpRequest<Buffer> delete​(int port,
                                             String host,
                                             String requestURI)

      Create an HTTP DELETE request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### delete

          default HttpRequest<Buffer> delete​(int port,
                                             String host,
                                             UriTemplate requestURI)

      Create an HTTP DELETE request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### delete

          default HttpRequest<Buffer> delete​(String host,
                                             String requestURI)

      Create an HTTP DELETE request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### delete

          default HttpRequest<Buffer> delete​(String host,
                                             UriTemplate requestURI)

      Create an HTTP DELETE request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### deleteAbs

          default HttpRequest<Buffer> deleteAbs​(String absoluteURI)

      Create an HTTP DELETE request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### deleteAbs

          default HttpRequest<Buffer> deleteAbs​(UriTemplate absoluteURI)

      Create an HTTP DELETE request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### patch

          default HttpRequest<Buffer> patch​(String requestURI)

      Create an HTTP PATCH request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### patch

          default HttpRequest<Buffer> patch​(UriTemplate requestURI)

      Create an HTTP PATCH request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### patch

          default HttpRequest<Buffer> patch​(int port,
                                            String host,
                                            String requestURI)

      Create an HTTP PATCH request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### patch

          default HttpRequest<Buffer> patch​(int port,
                                            String host,
                                            UriTemplate requestURI)

      Create an HTTP PATCH request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### patch

          default HttpRequest<Buffer> patch​(String host,
                                            String requestURI)

      Create an HTTP PATCH request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### patch

          default HttpRequest<Buffer> patch​(String host,
                                            UriTemplate requestURI)

      Create an HTTP PATCH request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### patchAbs

          default HttpRequest<Buffer> patchAbs​(String absoluteURI)

      Create an HTTP PATCH request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### patchAbs

          default HttpRequest<Buffer> patchAbs​(UriTemplate absoluteURI)

      Create an HTTP PATCH request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### head

          default HttpRequest<Buffer> head​(String requestURI)

      Create an HTTP HEAD request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### head

          default HttpRequest<Buffer> head​(UriTemplate requestURI)

      Create an HTTP HEAD request to send to the server at the default host and port.
      Parameters:
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### head

          default HttpRequest<Buffer> head​(int port,
                                           String host,
                                           String requestURI)

      Create an HTTP HEAD request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### head

          default HttpRequest<Buffer> head​(int port,
                                           String host,
                                           UriTemplate requestURI)

      Create an HTTP HEAD request to send to the server at the specified host and port.
      Parameters:
        `port` - the port
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### head

          default HttpRequest<Buffer> head​(String host,
                                           String requestURI)

      Create an HTTP HEAD request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI
      Returns:
        an HTTP client request object

    - #### head

          default HttpRequest<Buffer> head​(String host,
                                           UriTemplate requestURI)

      Create an HTTP HEAD request to send to the server at the specified host and default port.
      Parameters:
        `host` - the host
        `requestURI` - the request URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### headAbs

          default HttpRequest<Buffer> headAbs​(String absoluteURI)

      Create an HTTP HEAD request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI
      Returns:
        an HTTP client request object

    - #### headAbs

          default HttpRequest<Buffer> headAbs​(UriTemplate absoluteURI)

      Create an HTTP HEAD request to send to the server using an absolute URI, specifying a response handler to receive the response
      Parameters:
        `absoluteURI` - the absolute URI as a `UriTemplate`
      Returns:
        an HTTP client request object

    - #### updateSSLOptions

          default Future<Boolean> updateSSLOptions​(ClientSSLOptions options)

      Update the client with new SSL `options`, the update happens if the options object is valid and different from the existing options object.

      The boolean succeeded future result indicates whether the update occurred.

      Parameters:
        `options` - the new SSL options
      Returns:
        a future signaling the update success

    - #### updateSSLOptions

          Future<Boolean> updateSSLOptions​(ClientSSLOptions options,
                                           boolean force)

      Update the client with new SSL `options`, the update happens if the options object is valid and different from the existing options object.

      The `options` object is compared using its `equals` method against the existing options to prevent an update when the objects are equals since loading options can be costly, this can happen for share TCP servers. When object are equals, setting `force` to `true` forces the update.

      The boolean succeeded future result indicates whether the update occurred.

      Parameters:
        `options` - the new SSL options
        `force` - force the update when options are equals
      Returns:
        a future signaling the update success

    - #### close

          void close()

      Close the client. Closing will close down any pooled connections. Clients should always be closed after use.