Interface ClientRequest<B extends ClientRequest<B,R>,R extends ClientResponse>

Type Parameters:
B - type of the client request
R - type of the client response
All Known Subinterfaces:
Http1ClientRequest, Http2ClientRequest

public interface ClientRequest<B extends ClientRequest<B,R>,R extends ClientResponse>
Request can be reused within a single thread, but it remembers all explicitly configured headers and URI. Implementation is not expected to be thread safe!
  • Method Details

    • uri

      default B uri(String uri)
      Configure URI.
      Parameters:
      uri - uri to resolve against base URI, or to use if absolute
      Returns:
      updated request
    • path

      default B path(String uri)
      Configure path to call.
      Parameters:
      uri - path
      Returns:
      updated request
    • tls

      B tls(Tls tls)
      TLS configuration for this specific request.
      Parameters:
      tls - tls configuration
      Returns:
      updated request
    • uri

      B uri(URI uri)
      Configure URI.
      Parameters:
      uri - uri to resolve against base URI, or to use if absolute
      Returns:
      updated request
    • header

      B header(Http.HeaderValue header)
      Set an HTTP header.
      Parameters:
      header - header to set
      Returns:
      updated request
    • header

      default B header(Http.HeaderName name, String value)
      Set an HTTP header.
      Parameters:
      name - header name
      value - header value
      Returns:
      updated request
    • headers

      B headers(Function<ClientRequestHeaders,WritableHeaders<?>> headersConsumer)
      Update headers.
      Parameters:
      headersConsumer - consumer of client request headers
      Returns:
      updated request
    • pathParam

      B pathParam(String name, String value)
      Replace a placeholder in URI with an actual value.
      Parameters:
      name - name of parameter
      value - value of parameter
      Returns:
      updated request
    • queryParam

      B queryParam(String name, String... values)
      Add query parameter.
      Parameters:
      name - name of parameter
      values - value(s) of parameter
      Returns:
      updated request
    • request

      R request()
      Request without an entity.
      Returns:
      response
    • request

      default <T> T request(Class<T> type)
      Request without sending an entity, asking for entity only.
      Type Parameters:
      T - type of entity
      Parameters:
      type - type of entity
      Returns:
      correctly typed entity
      See Also:
    • submit

      R submit(Object entity)
      Submit an entity.
      Parameters:
      entity - request entity
      Returns:
      response
    • outputStream

      R outputStream(ClientRequest.OutputStreamHandler outputStreamConsumer)
      Handle output stream and submit the request.
      Parameters:
      outputStreamConsumer - output stream to write request entity
      Returns:
      response
    • resolvedUri

      URI resolvedUri()
      Resolved URI that will be used to invoke this request.
      Returns:
      URI to invoke
    • connection

      B connection(ClientConnection connection)
      This method is for explicit connection use by this request.
      Parameters:
      connection - connection to use for this request
      Returns:
      updated client request