Interface WebClientSession

  • All Superinterfaces:
    WebClient

    public interface WebClientSession
    extends WebClient
    An asynchronous sessions aware HTTP / HTTP/2 client called WebClientSession.

    This client wraps a WebClient and makes it session aware adding features to it:

    • Per client headers, to be send with every request
    • Per client cookies, to be send with every request
    • Automatic storage and sending of cookies received from the server(s)

    The client honors the cookies attributes:

    • domain
    • path
    • secure
    • max-age and expires

    Author:
    Tommaso Nolli
    • Method Detail

      • create

        static WebClientSession create​(WebClient webClient)
        Create a session aware web client using the provided webClient instance.
        Parameters:
        webClient - the web client instance
        Returns:
        the created client
      • create

        static WebClientSession create​(WebClient webClient,
                                       CookieStore cookieStore)
        Create a session aware web client using the provided webClient instance.
        Parameters:
        webClient - the web client instance
        Returns:
        the created client
      • addHeader

        WebClientSession addHeader​(CharSequence name,
                                   CharSequence value)
        Configure the client to add an HTTP header to every request.
        Parameters:
        name - the header name
        value - the header value
        Returns:
        a reference to this, so the API can be used fluently
      • addHeader

        WebClientSession addHeader​(String name,
                                   String value)
        Configure the client to add an HTTP header to every request.
        Parameters:
        name - the header name
        value - the header value
        Returns:
        a reference to this, so the API can be used fluently
      • addHeader

        WebClientSession addHeader​(CharSequence name,
                                   Iterable<CharSequence> values)
        Configure the client to add an HTTP header to every request.
        Parameters:
        name - the header name
        values - the header value
        Returns:
        a reference to this, so the API can be used fluently
      • addHeader

        WebClientSession addHeader​(String name,
                                   Iterable<String> values)
        Configure the client to add an HTTP header to every request.
        Parameters:
        name - the header name
        values - the header value
        Returns:
        a reference to this, so the API can be used fluently
      • removeHeader

        WebClientSession removeHeader​(CharSequence name)
        Removes a previously added header.
        Parameters:
        name - the header name
        Returns:
        a reference to this, so the API can be used fluently
      • removeHeader

        WebClientSession removeHeader​(String name)
        Removes a previously added header.
        Parameters:
        name - the header name
        Returns:
        a reference to this, so the API can be used fluently
      • cookieStore

        CookieStore cookieStore()
        Returns this client's CookieStore

        All cookies added to this store will be sent with every request. The CookieStore honors the domain, path, secure and max-age properties of received cookies and is automatically updated with cookies present in responses received by this client.

        Returns:
        this client's cookie store
      • addInterceptor

        WebClientSession addInterceptor​(Handler<io.vertx.ext.web.client.impl.HttpContext<?>> interceptor)
        Description copied from interface: WebClient
        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.

        Specified by:
        addInterceptor in interface WebClient
        Parameters:
        interceptor - the interceptor to add, must not be null
        Returns:
        a reference to this, so the API can be used fluently