Interface HttpClient

All Known Subinterfaces:
HttpClientAgent, HttpClientConnection

public interface HttpClient
The API to interacts with an HTTP server.
Author:
Tim Fox
  • Method Details

    • 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

      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

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

      Future<Void> shutdown(Duration timeout)
      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
      Returns:
      a future notified when the client is closed