Package io.vertx.core.http

## Interface HttpClient

- All Known Subinterfaces:
    `HttpClientAgent`, `HttpClientConnection`

      public interface HttpClient

  The API to interacts with an HTTP server.
  Author:
    Tim Fox

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default Future<Void>` | `close()` | Close immediately (`shutdown(0, TimeUnit.SECONDS`).
    `default Future<HttpClientRequest>` | `request()` | Create an HTTP request to send to the server with the default host and port of the client.
    `default Future<HttpClientRequest>` | `request​(HttpMethod method, int port, String host, String requestURI)` | Create an HTTP request to send to the server at the `host` and `port`.
    `default Future<HttpClientRequest>` | `request​(HttpMethod method, String requestURI)` | Create an HTTP request to send to the server at the default host and port.
    `default Future<HttpClientRequest>` | `request​(HttpMethod method, String host, String requestURI)` | Create an HTTP request to send to the server at the `host` and default port.
    `Future<HttpClientRequest>` | `request​(RequestOptions options)` | Create an HTTP request to send to the server.
    `default Future<Void>` | `shutdown()` | Shutdown with a 30 seconds timeout (`shutdown(30, TimeUnit.SECONDS)`).
    `Future<Void>` | `shutdown​(long timeout, TimeUnit unit)` | Initiate the client shutdown sequence.

- - ### Method Detail

    - #### request

          default Future<HttpClientRequest> request()

      Create an HTTP request to send to the server with the default host and port of the client.
      Returns:
        a future notified when the request is ready to be sent

    - #### request

          Future<HttpClientRequest> request​(RequestOptions options)

      Create an HTTP request to send to the server.
      Parameters:
        `options` - the request options
      Returns:
        a future notified when the request is ready to be sent

    - #### request

          default Future<HttpClientRequest> request​(HttpMethod method,
                                                    int port,
                                                    String host,
                                                    String requestURI)

      Create an HTTP request to send to the server at the `host` and `port`.
      Parameters:
        `method` - the HTTP method
        `port` - the port
        `host` - the host
        `requestURI` - the relative URI
      Returns:
        a future notified when the request is ready to be sent

    - #### request

          default Future<HttpClientRequest> request​(HttpMethod method,
                                                    String host,
                                                    String requestURI)

      Create an HTTP request to send to the server at the `host` and default port.
      Parameters:
        `method` - the HTTP method
        `host` - the host
        `requestURI` - the relative URI
      Returns:
        a future notified when the request is ready to be sent

    - #### request

          default Future<HttpClientRequest> 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 relative URI
      Returns:
        a future notified when the request is ready to be sent

    - #### shutdown

          default Future<Void> shutdown()

      Shutdown with a 30 seconds timeout (`shutdown(30, TimeUnit.SECONDS)`).
      Returns:
        a future completed when shutdown has completed

    - #### close

          default Future<Void> close()

      Close immediately (`shutdown(0, TimeUnit.SECONDS`).
      Returns:
        a future notified when the client is closed

    - #### shutdown

          Future<Void> shutdown​(long timeout,
                                TimeUnit unit)

      Initiate the client shutdown sequence.

      Connections are taken out of service and closed when all inflight requests are processed, client connection are immediately removed from the pool. When all connections are closed the client is closed. When the `timeout` expires, all unclosed connections are immediately closed.

      - HTTP/2 connections will send a go away frame immediately to signal the other side the connection will close
      - HTTP/1.x client connection will be closed after the current response is received
      Parameters:
        `timeout` - the amount of time after which all resources are forcibly closed
        `unit` - the of the timeout
      Returns:
        a future notified when the client is closed