Class HttpRequest


  • public class HttpRequest
    extends Object
    The outgoing Http request.
    • Constructor Detail

      • HttpRequest

        public HttpRequest​(HttpMethod httpMethod,
                           URL url)
        Create a new HttpRequest instance.
        Parameters:
        httpMethod - the HTTP request method
        url - the target address to send the request to
      • HttpRequest

        public HttpRequest​(HttpMethod httpMethod,
                           URL url,
                           HttpHeaders headers,
                           reactor.core.publisher.Flux<io.netty.buffer.ByteBuf> body)
        Create a new HttpRequest instance.
        Parameters:
        httpMethod - the HTTP request method
        url - the target address to send the request to
        headers - the HTTP headers to use with this request
        body - the request content
    • Method Detail

      • httpMethod

        public HttpMethod httpMethod()
        Get the request method.
        Returns:
        the request method
      • withHttpMethod

        public HttpRequest withHttpMethod​(HttpMethod httpMethod)
        Set the request method.
        Parameters:
        httpMethod - the request method
        Returns:
        this HttpRequest
      • url

        public URL url()
        Get the target address.
        Returns:
        the target address
      • withUrl

        public HttpRequest withUrl​(URL url)
        Set the target address to send the request to.
        Parameters:
        url - target address as URL
        Returns:
        this HttpRequest
      • headers

        public HttpHeaders headers()
        Get the request headers.
        Returns:
        headers to be sent
      • withHeaders

        public HttpRequest withHeaders​(HttpHeaders headers)
        Set the request headers.
        Parameters:
        headers - the set of headers
        Returns:
        this HttpRequest
      • withHeader

        public HttpRequest withHeader​(String name,
                                      String value)
        Set a request header, replacing any existing value. A null for value will remove the header if one with matching name exists.
        Parameters:
        name - the header name
        value - the header value
        Returns:
        this HttpRequest
      • body

        public reactor.core.publisher.Flux<io.netty.buffer.ByteBuf> body()
        Get the request content.
        Returns:
        the content to be send
      • withBody

        public HttpRequest withBody​(String content)
        Set the request content.
        Parameters:
        content - the request content
        Returns:
        this HttpRequest
      • withBody

        public HttpRequest withBody​(byte[] content)
        Set the request content. The Content-Length header will be set based on the given content's length
        Parameters:
        content - the request content
        Returns:
        this HttpRequest
      • withBody

        public HttpRequest withBody​(reactor.core.publisher.Flux<io.netty.buffer.ByteBuf> content)
        Set request content. Caller must set the Content-Length header to indicate the length of the content, or use Transfer-Encoding: chunked.
        Parameters:
        content - the request content
        Returns:
        this HttpRequest
      • buffer

        public HttpRequest buffer()
        Creates a clone of the request. The main purpose of this is so that this HttpRequest can be changed and the resulting HttpRequest can be a backup. This means that the buffered HttpHeaders and body must not be able to change from side effects of this HttpRequest.
        Returns:
        a new HTTP request instance with cloned instances of all mutable properties.