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 Details

    • 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
    • create

      static WebClient create(Vertx vertx, WebClientConfig config)
      Create a web client using the provided vertx instance and default pooling options.
      Parameters:
      vertx - the vertx instance
      config - the Web Client config
      Returns:
      the created web client
    • create

      static WebClient create(Vertx vertx, WebClientConfig config, PoolOptions poolOptions)
      Create a web client using the provided vertx instance.
      Parameters:
      vertx - the vertx instance
      config - the Web Client config
      poolOptions - the HTTP Client pool options
      Returns:
      the created web client
    • create

      static WebClient create(Vertx vertx, WebClientConfig config, ClientSSLOptions sslOptions)
      Create a web client using the provided vertx instance, SSL options and default pooling options.
      Parameters:
      vertx - the vertx instance
      config - the Web Client config
      sslOptions - the SSL options
      Returns:
      the created web client
    • create

      static WebClient create(Vertx vertx, WebClientConfig config, ClientSSLOptions sslOptions, PoolOptions poolOptions)
      Create a web client using the provided vertx instance and SSL options.
      Parameters:
      vertx - the vertx instance
      config - the Web Client config
      sslOptions - the SSL 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

      HttpRequest<Buffer> request(RequestOptions options)
      Create an HTTP request to send to the server from the specified request options.
      Parameters:
      options - the request options
      Returns:
      an HTTP client request object
    • request

      @Deprecated default HttpRequest<Buffer> request(HttpMethod method, RequestOptions options)
      Deprecated.
      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

      @Deprecated HttpRequest<Buffer> request(HttpMethod method, SocketAddress serverAddress, RequestOptions options)
      Deprecated.
      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
    • addInterceptor

      WebClient addInterceptor(Handler<io.vertx.ext.web.client.impl.HttpContext<?>> interceptor)
      Add interceptor in the chain.

      The interceptor can maintain per request state with HttpContext.get(String)/HttpContext.set(String, Object).

      A request/response can be processed several times (in case of retry) and thus they should use the per request state to ensure an operation is not done twice.

      This API is internal.

      Parameters:
      interceptor - the interceptor to add, must not be null
      Returns:
      a reference to this, so the API can be used fluently
    • 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.