Class HttpClientRequest

  • All Implemented Interfaces:
    ReadStream<HttpClientResponse>, StreamBase, WriteStream<Buffer>

    public class HttpClientRequest
    extends Object
    implements WriteStream<Buffer>, ReadStream<HttpClientResponse>
    Represents a client-side HTTP request.

    Instances are created by an HttpClient instance, via one of the methods corresponding to the specific HTTP methods, or the generic request methods. On creation the request will not have been written to the wire.

    Once a request has been obtained, headers can be set on it, and data can be written to its body if required. Once you are ready to send the request, one of the end(java.lang.String) methods should be called.

    Nothing is actually sent until the request has been internally assigned an HTTP connection.

    The HttpClient instance will return an instance of this class immediately, even if there are no HTTP connections available in the pool. Any requests sent before a connection is assigned will be queued internally and actually sent when an HTTP connection becomes available from the pool.

    The headers of the request are queued for writing either when the end(java.lang.String) method is called, or, when the first part of the body is written, whichever occurs first.

    This class supports both chunked and non-chunked HTTP.

    It implements WriteStream so it can be used with Pump to pump data with flow control.

    An example of using this class is as follows:

    NOTE: This class has been automatically generated from the original non Mutiny-ified interface using Vert.x codegen.

    • Constructor Detail

      • HttpClientRequest

        public HttpClientRequest​(io.vertx.core.http.HttpClientRequest delegate)
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • pipeTo

        public io.smallrye.mutiny.Uni<Void> pipeTo​(WriteStream<HttpClientResponse> dst)
        Pipe this ReadStream to the WriteStream.

        Elements emitted by this stream will be written to the write stream until this stream ends or fails.

        Once this stream has ended or failed, the write stream will be ended and the handler will be called with the result.

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Specified by:
        pipeTo in interface ReadStream<HttpClientResponse>
        Parameters:
        dst - the destination write stream
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • pipeToAndAwait

        public Void pipeToAndAwait​(WriteStream<HttpClientResponse> dst)
        Blocking variant of io.vertx.mutiny.core.streams.ReadStream#pipeTo(io.vertx.mutiny.core.streams.WriteStream).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Specified by:
        pipeToAndAwait in interface ReadStream<HttpClientResponse>
        Parameters:
        dst - the destination write stream
        Returns:
        the Void instance produced by the operation
      • write

        public io.smallrye.mutiny.Uni<Void> write​(Buffer data)
        Same as write(io.vertx.mutiny.core.buffer.Buffer) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Specified by:
        write in interface WriteStream<Buffer>
        Parameters:
        data -
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • writeAndAwait

        public Void writeAndAwait​(Buffer data)
        Blocking variant of write(io.vertx.mutiny.core.buffer.Buffer).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Specified by:
        writeAndAwait in interface WriteStream<Buffer>
        Parameters:
        data -
        Returns:
        the Void instance produced by the operation
      • setWriteQueueMaxSize

        public HttpClientRequest setWriteQueueMaxSize​(int maxSize)
        Specified by:
        setWriteQueueMaxSize in interface WriteStream<Buffer>
        Parameters:
        maxSize - the max size of the write stream
        Returns:
        a reference to this, so the API can be used fluently
      • setFollowRedirects

        public HttpClientRequest setFollowRedirects​(boolean followRedirects)
        Parameters:
        followRedirects - true to follow HTTP redirects
        Returns:
        a reference to this, so the API can be used fluently
      • setMaxRedirects

        public HttpClientRequest setMaxRedirects​(int maxRedirects)
        Parameters:
        maxRedirects - the number of HTTP redirect to follow
        Returns:
        a reference to this, so the API can be used fluently
      • setChunked

        public HttpClientRequest setChunked​(boolean chunked)
        Parameters:
        chunked - true if chunked encoding
        Returns:
        a reference to this, so the API can be used fluently
      • isChunked

        public boolean isChunked()
        Returns:
        Is the request chunked?
      • method

        public io.vertx.core.http.HttpMethod method()
        Returns:
      • getRawMethod

        public String getRawMethod()
        Returns:
        the raw value of the method this request sends
      • setRawMethod

        public HttpClientRequest setRawMethod​(String method)
        Parameters:
        method - the raw method
        Returns:
        a reference to this, so the API can be used fluently
      • absoluteURI

        public String absoluteURI()
        Returns:
        the absolute URI corresponding to the the HTTP request
      • uri

        public String uri()
        Returns:
        The URI of the request.
      • path

        public String path()
        Returns:
        The path part of the uri. For example /somepath/somemorepath/someresource.foo
      • query

        public String query()
        Returns:
        the query part of the uri. For example someparam=32&someotherparam=x
      • getHost

        public String getHost()
        Returns:
        the request host. For HTTP/2 it returns the pseudo header otherwise it returns the header
      • headers

        public MultiMap headers()
        Returns:
        The HTTP headers
      • putHeader

        public HttpClientRequest putHeader​(String name,
                                           String value)
        Parameters:
        name - The header name
        value - The header value
        Returns:
        a reference to this, so the API can be used fluently
      • write

        public io.smallrye.mutiny.Uni<Void> write​(String chunk)
        Same as write(io.vertx.mutiny.core.buffer.Buffer) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Parameters:
        chunk -
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • writeAndAwait

        public Void writeAndAwait​(String chunk)
        Blocking variant of write(String).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Parameters:
        chunk -
        Returns:
        the Void instance produced by the operation
      • write

        public io.smallrye.mutiny.Uni<Void> write​(String chunk,
                                                  String enc)
        Same as write(io.vertx.mutiny.core.buffer.Buffer) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Parameters:
        chunk -
        enc -
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • writeAndAwait

        public Void writeAndAwait​(String chunk,
                                  String enc)
        Blocking variant of write(String,String).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Parameters:
        chunk -
        enc -
        Returns:
        the Void instance produced by the operation
      • continueHandler

        public HttpClientRequest continueHandler​(Consumer<Void> handler)
        Parameters:
        handler -
        Returns:
        a reference to this, so the API can be used fluently
      • sendHead

        public HttpClientRequest sendHead()
        Returns:
        a reference to this, so the API can be used fluently
      • sendHead

        public HttpClientRequest sendHead​(Consumer<io.vertx.core.http.HttpVersion> completionHandler)
        Parameters:
        completionHandler -
        Returns:
      • end

        public io.smallrye.mutiny.Uni<Void> end​(String chunk)
        Same as end(java.lang.String) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Parameters:
        chunk -
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • endAndAwait

        public Void endAndAwait​(String chunk)
        Blocking variant of end(String).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Parameters:
        chunk -
        Returns:
        the Void instance produced by the operation
      • end

        public io.smallrye.mutiny.Uni<Void> end​(String chunk,
                                                String enc)
        Same as end(java.lang.String) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Parameters:
        chunk -
        enc -
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • endAndAwait

        public Void endAndAwait​(String chunk,
                                String enc)
        Blocking variant of end(String,String).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Parameters:
        chunk -
        enc -
        Returns:
        the Void instance produced by the operation
      • end

        public io.smallrye.mutiny.Uni<Void> end​(Buffer chunk)
        Same as end(java.lang.String) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Specified by:
        end in interface WriteStream<Buffer>
        Parameters:
        chunk -
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • endAndAwait

        public Void endAndAwait​(Buffer chunk)
        Blocking variant of end(io.vertx.mutiny.core.buffer.Buffer).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Specified by:
        endAndAwait in interface WriteStream<Buffer>
        Parameters:
        chunk -
        Returns:
        the Void instance produced by the operation
      • end

        public io.smallrye.mutiny.Uni<Void> end()
        Same as end(java.lang.String) but with an handler called when the operation completes

        Unlike the bare Vert.x variant, this method returns a Uni. Don't forget to subscribe on it to trigger the operation.

        Specified by:
        end in interface WriteStream<Buffer>
        Returns:
        the uni firing the result of the operation when completed, or a failure if the operation failed.
      • endAndAwait

        public Void endAndAwait()
        Blocking variant of end(java.lang.String).

        This method waits for the completion of the underlying asynchronous operation. If the operation completes successfully, the result is returned, otherwise the failure is thrown (potentially wrapped in a RuntimeException).

        Specified by:
        endAndAwait in interface WriteStream<Buffer>
        Returns:
        the Void instance produced by the operation
      • setTimeout

        public HttpClientRequest setTimeout​(long timeoutMs)
        Parameters:
        timeoutMs - The quantity of time in milliseconds.
        Returns:
        a reference to this, so the API can be used fluently
      • reset

        public boolean reset()
        Returns:
      • reset

        public boolean reset​(long code)
        Parameters:
        code - the error code
        Returns:
        true when reset has been performed
      • writeCustomFrame

        public HttpClientRequest writeCustomFrame​(int type,
                                                  int flags,
                                                  Buffer payload)
        Parameters:
        type - the 8-bit frame type
        flags - the 8-bit frame flags
        payload - the frame payload
        Returns:
        a reference to this, so the API can be used fluently
      • streamId

        public int streamId()
        Returns:
        the id of the stream of this response, when it is not yet determined, i.e the request has not been yet sent or it is not supported HTTP/1.x
      • writeCustomFrame

        public HttpClientRequest writeCustomFrame​(HttpFrame frame)
        Parameters:
        frame - the frame to write
        Returns:
      • setStreamPriority

        public HttpClientRequest setStreamPriority​(io.vertx.core.http.StreamPriority streamPriority)
        Parameters:
        streamPriority - the priority of this request's stream
        Returns:
      • getStreamPriority

        public io.vertx.core.http.StreamPriority getStreamPriority()
        Returns:
        the priority of the associated HTTP/2 stream for HTTP/2 otherwise null
      • pipeToAndForget

        public void pipeToAndForget​(WriteStream<HttpClientResponse> dst)
        Variant of io.vertx.mutiny.core.streams.ReadStream#pipeTo(io.vertx.mutiny.core.streams.WriteStream) that ignores the result of the operation.

        This method subscribes on the result of io.vertx.mutiny.core.streams.ReadStream#pipeTo(io.vertx.mutiny.core.streams.WriteStream), but discards the outcome (item or failure). This method is useful to trigger the asynchronous operation from io.vertx.mutiny.core.streams.ReadStream#pipeTo(io.vertx.mutiny.core.streams.WriteStream) but you don't need to compose it with other operations.

        Parameters:
        dst -
      • writeAndForget

        public HttpClientRequest writeAndForget​(String chunk)
        Variant of write(String) that ignores the result of the operation.

        This method subscribes on the result of write(String), but discards the outcome (item or failure). This method is useful to trigger the asynchronous operation from write(String) but you don't need to compose it with other operations.

        Parameters:
        chunk -
        Returns:
      • writeAndForget

        public HttpClientRequest writeAndForget​(String chunk,
                                                String enc)
        Variant of write(String,String) that ignores the result of the operation.

        This method subscribes on the result of write(String,String), but discards the outcome (item or failure). This method is useful to trigger the asynchronous operation from write(String,String) but you don't need to compose it with other operations.

        Parameters:
        chunk -
        enc -
        Returns:
      • endAndForget

        public void endAndForget​(String chunk)
        Variant of end(String) that ignores the result of the operation.

        This method subscribes on the result of end(String), but discards the outcome (item or failure). This method is useful to trigger the asynchronous operation from end(String) but you don't need to compose it with other operations.

        Parameters:
        chunk -
      • endAndForget

        public void endAndForget​(String chunk,
                                 String enc)
        Variant of end(String,String) that ignores the result of the operation.

        This method subscribes on the result of end(String,String), but discards the outcome (item or failure). This method is useful to trigger the asynchronous operation from end(String,String) but you don't need to compose it with other operations.

        Parameters:
        chunk -
        enc -
      • endAndForget

        public void endAndForget()
        Variant of end(java.lang.String) that ignores the result of the operation.

        This method subscribes on the result of end(java.lang.String), but discards the outcome (item or failure). This method is useful to trigger the asynchronous operation from end(java.lang.String) but you don't need to compose it with other operations.

      • newInstance

        public static HttpClientRequest newInstance​(io.vertx.core.http.HttpClientRequest arg)