Class List Method List File List

# Class: VertxWebClient::HttpRequest

Inherits:
  Object
  - Object
  - VertxWebClient::HttpRequest
  show all
Defined in:
  /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb

## Overview

A client-side HTTP request.

Instances are created by an WebClient instance, via one of the methods corresponding to the specific HTTP methods such as WebClient#get, etc...

The request shall be configured prior sending, the request is immutable and when a mutator method is called, a new request is returned allowing to expose the request in a public API and apply further customization.

After the request has been configured, the methods

- #send
- #send_stream
- #send_json ()}
- #send_form

can be called. The `sendXXX` methods perform the actual request, they can be called multiple times to perform the same HTTP request at different points in time.

The handler is called back with

- an HttpResponse instance when the HTTP response has been received
- a failure when the HTTP request failed (like a connection error) or when the HTTP response could not be obtained (like connection or unmarshalling errors)

Most of the time, this client will buffer the HTTP response fully unless a specific is used such as .

## Instance Method Summary (collapse)

- - (self) add_query_param(paramName = nil, paramValue = nil)
  Add a query parameter to the request.
- - (::VertxWebClient::HttpRequest) as(responseCodec = nil)
  Configure the request to decode the response with the responseCodec.
- - (::VertxWebClient::HttpRequest) copy
  Copy this request.
- - (self) expect(param_1 = nil)
  Add an expectation that the response is valid according to the provided predicate.
- - (self) follow_redirects(value = nil)
  Set wether or not to follow the directs for the request.
- - (::Vertx::MultiMap) headers
  The HTTP headers.
- - (self) host(value = nil)
  Configure the request to use a new host value.
- - (self) method(value = nil)
  Configure the request to use a new method value.
- - (self) port(value = nil)
  Configure the request to use a new port value.
- - (self) put_header(name = nil, value = nil)
  Configure the request to add a new HTTP header.
- - (::Vertx::MultiMap) query_params
  Return the current query parameters.
- - (void) send { ... }
  Send a request, the handler will receive the response as an HttpResponse.
- - (void) send_buffer(body = nil) { ... }
  Like #send but with an HTTP request body buffer.
- - (void) send_form(body = nil) { ... }
  Like #send but with an HTTP request body multimap encoded as form and the content type set to application/x-www-form-urlencoded.
- - (void) send_json(body = nil) { ... }
  Like #send but with an HTTP request body object encoded as json and the content type set to application/json.
- - (void) send_json_object(body = nil) { ... }
  Like #send but with an HTTP request body object encoded as json and the content type set to application/json.
- - (void) send_multipart_form(body = nil) { ... }
  Like #send but with an HTTP request body multimap encoded as form and the content type set to multipart/form-data.
- - (void) send_stream(body = nil) { ... }
  Like #send but with an HTTP request body stream.
- - (self) set_query_param(paramName = nil, paramValue = nil)
  Set a query parameter to the request.
- - (self) ssl(value = nil)
- - (self) timeout(value = nil)
  Configures the amount of time in milliseconds after which if the request does not return any data within the timeout period an TimeoutException fails the request.
- - (self) uri(value = nil)
  Configure the request to use a new request URI value.
- - (self) virtual_host(value = nil)
  Configure the request to use a virtual host value.

## Instance Method Details

### - (`self`) add_query_param(paramName = nil, paramValue = nil)

Add a query parameter to the request.

Parameters:

- paramName (`String`) (defaults to: `nil`) —
  the param name
- paramValue (`String`) (defaults to: `nil`) —
  the param value

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    170
    171
    172
    173
    174
    175
    176
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 170

    def add_query_param(paramName=nil,paramValue=nil)
      if paramName.class == String && paramValue.class == String && !block_given?
        @j_del.java_method(:addQueryParam, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(paramName,paramValue)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling add_query_param(#{paramName},#{paramValue})"
    end

### - (`::VertxWebClient::HttpRequest`) as(responseCodec = nil)

Configure the request to decode the response with the `responseCodec`.

Parameters:

- responseCodec (`::VertxWebCommon::BodyCodec`) (defaults to: `nil`) —
  the response codec

Returns:

- (`::VertxWebClient::HttpRequest`) —
  a reference to this, so the API can be used fluently

Raises:

- (`ArgumentError`)

    75
    76
    77
    78
    79
    80
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 75

    def as(responseCodec=nil)
      if responseCodec.class.method_defined?(:j_del) && !block_given?
        return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:as, [Java::IoVertxExtWebCodec::BodyCodec.java_class]).call(responseCodec.j_del),::VertxWebClient::HttpRequest, nil)
      end
      raise ArgumentError, "Invalid arguments when calling as(#{responseCodec})"
    end

### - (`::VertxWebClient::HttpRequest`) copy

Copy this request

Returns:

- (`::VertxWebClient::HttpRequest`) —
  a copy of this request

Raises:

- (`ArgumentError`)

    226
    227
    228
    229
    230
    231
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 226

    def copy
      if !block_given?
        return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:copy, []).call(),::VertxWebClient::HttpRequest, nil)
      end
      raise ArgumentError, "Invalid arguments when calling copy()"
    end

### - (`self`) expect(predicate) { ... } - (`self`) expect(predicate)

Add an expectation that the response is valid according to the provided `predicate`.

Multiple predicates can be added.

Overloads:

- - (`self`) expect(predicate) { ... }

  Yields:

  - the predicate
- - (`self`) expect(predicate)

  Parameters:

  - predicate (`::VertxWebClient::ResponsePredicate`) —
    the predicate

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 206

    def expect(param_1=nil)
      if block_given? && param_1 == nil
        @j_del.java_method(:expect, [Java::JavaUtilFunction::Function.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::VertxWebClient::HttpResponse, nil)).j_del }))
        return self
      elsif param_1.class.method_defined?(:j_del) && !block_given?
        @j_del.java_method(:expect, [Java::IoVertxExtWebClientPredicate::ResponsePredicate.java_class]).call(param_1.j_del)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling expect(#{param_1})"
    end

### - (`self`) follow_redirects(value = nil)

Set wether or not to follow the directs for the request.

Parameters:

- value (`true`, `false`) (defaults to: `nil`) —
  true if redirections should be followed

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    191
    192
    193
    194
    195
    196
    197
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 191

    def follow_redirects(value=nil)
      if (value.class == TrueClass || value.class == FalseClass) && !block_given?
        @j_del.java_method(:followRedirects, [Java::boolean.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling follow_redirects(#{value})"
    end

### - (`::Vertx::MultiMap`) headers

Returns The HTTP headers

Returns:

- (`::Vertx::MultiMap`) —
  The HTTP headers

Raises:

- (`ArgumentError`)

    135
    136
    137
    138
    139
    140
    141
    142
    143
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 135

    def headers
      if !block_given?
        if @cached_headers != nil
          return @cached_headers
        end
        return @cached_headers = ::Vertx::Util::Utils.safe_create(@j_del.java_method(:headers, []).call(),::Vertx::MultiMap)
      end
      raise ArgumentError, "Invalid arguments when calling headers()"
    end

### - (`self`) host(value = nil)

Configure the request to use a new host `value`.

Parameters:

- value (`String`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    84
    85
    86
    87
    88
    89
    90
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 84

    def host(value=nil)
      if value.class == String && !block_given?
        @j_del.java_method(:host, [Java::java.lang.String.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling host(#{value})"
    end

### - (`self`) method(value = nil)

Configure the request to use a new method `value`.

Parameters:

- value (`:OPTIONS`, `:GET`, `:HEAD`, `:POST`, `:PUT`, `:DELETE`, `:TRACE`, `:CONNECT`, `:PATCH`, `:OTHER`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    55
    56
    57
    58
    59
    60
    61
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 55

    def method(value=nil)
      if value.class == Symbol && !block_given?
        @j_del.java_method(:method, [Java::IoVertxCoreHttp::HttpMethod.java_class]).call(Java::IoVertxCoreHttp::HttpMethod.valueOf(value.to_s))
        return self
      end
      raise ArgumentError, "Invalid arguments when calling method(#{value})"
    end

### - (`self`) port(value = nil)

Configure the request to use a new port `value`.

Parameters:

- value (`Fixnum`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    65
    66
    67
    68
    69
    70
    71
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 65

    def port(value=nil)
      if value.class == Fixnum && !block_given?
        @j_del.java_method(:port, [Java::int.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling port(#{value})"
    end

### - (`self`) put_header(name = nil, value = nil)

Configure the request to add a new HTTP header.

Parameters:

- name (`String`) (defaults to: `nil`) —
  the header name
- value (`String`) (defaults to: `nil`) —
  the header value

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    127
    128
    129
    130
    131
    132
    133
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 127

    def put_header(name=nil,value=nil)
      if name.class == String && value.class == String && !block_given?
        @j_del.java_method(:putHeader, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(name,value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling put_header(#{name},#{value})"
    end

### - (`::Vertx::MultiMap`) query_params

Return the current query parameters.

Returns:

- (`::Vertx::MultiMap`) —
  the current query parameters

Raises:

- (`ArgumentError`)

    218
    219
    220
    221
    222
    223
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 218

    def query_params
      if !block_given?
        return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:queryParams, []).call(),::Vertx::MultiMap)
      end
      raise ArgumentError, "Invalid arguments when calling query_params()"
    end

### - (`void`) send { ... }

This method returns an undefined value.

Send a request, the `handler` will receive the response as an VertxWebClient::HttpResponse.

Yields:

Raises:

- (`ArgumentError`)

    301
    302
    303
    304
    305
    306
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 301

    def send
      if block_given?
        return @j_del.java_method(:send, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send()"
    end

### - (`void`) send_buffer(body = nil) { ... }

This method returns an undefined value.

Like #send but with an HTTP request `body` buffer.

Parameters:

- body (`::Vertx::Buffer`) (defaults to: `nil`) —
  the body

Yields:

Raises:

- (`ArgumentError`)

    246
    247
    248
    249
    250
    251
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 246

    def send_buffer(body=nil)
      if body.class.method_defined?(:j_del) && block_given?
        return @j_del.java_method(:sendBuffer, [Java::IoVertxCoreBuffer::Buffer.java_class,Java::IoVertxCore::Handler.java_class]).call(body.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send_buffer(#{body})"
    end

### - (`void`) send_form(body = nil) { ... }

This method returns an undefined value.

Like #send but with an HTTP request `body` multimap encoded as form and the content type set to `application/x-www-form-urlencoded`.

When the content type header is previously set to `multipart/form-data` it will be used instead.

Parameters:

- body (`::Vertx::MultiMap`) (defaults to: `nil`) —
  the body

Yields:

Raises:

- (`ArgumentError`)

    281
    282
    283
    284
    285
    286
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 281

    def send_form(body=nil)
      if body.class.method_defined?(:j_del) && block_given?
        return @j_del.java_method(:sendForm, [Java::IoVertxCore::MultiMap.java_class,Java::IoVertxCore::Handler.java_class]).call(body.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send_form(#{body})"
    end

### - (`void`) send_json(body = nil) { ... }

This method returns an undefined value.

Like #send but with an HTTP request `body` object encoded as json and the content type set to `application/json`.

Parameters:

- body (`Object`) (defaults to: `nil`) —
  the body

Yields:

Raises:

- (`ArgumentError`)

    268
    269
    270
    271
    272
    273
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 268

    def send_json(body=nil)
      if ::Vertx::Util::unknown_type.accept?(body) && block_given?
        return @j_del.java_method(:sendJson, [Java::java.lang.Object.java_class,Java::IoVertxCore::Handler.java_class]).call(::Vertx::Util::Utils.to_object(body),(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send_json(#{body})"
    end

### - (`void`) send_json_object(body = nil) { ... }

This method returns an undefined value.

Like #send but with an HTTP request `body` object encoded as json and the content type set to `application/json`.

Parameters:

- body (`Hash{String => Object}`) (defaults to: `nil`) —
  the body

Yields:

Raises:

- (`ArgumentError`)

    257
    258
    259
    260
    261
    262
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 257

    def send_json_object(body=nil)
      if body.class == Hash && block_given?
        return @j_del.java_method(:sendJsonObject, [Java::IoVertxCoreJson::JsonObject.java_class,Java::IoVertxCore::Handler.java_class]).call(::Vertx::Util::Utils.to_json_object(body),(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send_json_object(#{body})"
    end

### - (`void`) send_multipart_form(body = nil) { ... }

This method returns an undefined value.

Like #send but with an HTTP request `body` multimap encoded as form and the content type set to `multipart/form-data`. You may use this method to send attributes and upload files.

Parameters:

- body (`::VertxWebCommon::MultipartForm`) (defaults to: `nil`) —
  the body

Yields:

Raises:

- (`ArgumentError`)

    292
    293
    294
    295
    296
    297
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 292

    def send_multipart_form(body=nil)
      if body.class.method_defined?(:j_del) && block_given?
        return @j_del.java_method(:sendMultipartForm, [Java::IoVertxExtWebMultipart::MultipartForm.java_class,Java::IoVertxCore::Handler.java_class]).call(body.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send_multipart_form(#{body})"
    end

### - (`void`) send_stream(body = nil) { ... }

This method returns an undefined value.

Like #send but with an HTTP request `body` stream.

Parameters:

- body (`::Vertx::ReadStream`) (defaults to: `nil`) —
  the body

Yields:

Raises:

- (`ArgumentError`)

    236
    237
    238
    239
    240
    241
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 236

    def send_stream(body=nil)
      if body.class.method_defined?(:j_del) && block_given?
        return @j_del.java_method(:sendStream, [Java::IoVertxCoreStreams::ReadStream.java_class,Java::IoVertxCore::Handler.java_class]).call(body.j_del,(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxWebClient::HttpResponse, nil) : nil) }))
      end
      raise ArgumentError, "Invalid arguments when calling send_stream(#{body})"
    end

### - (`self`) set_query_param(paramName = nil, paramValue = nil)

Set a query parameter to the request.

Parameters:

- paramName (`String`) (defaults to: `nil`) —
  the param name
- paramValue (`String`) (defaults to: `nil`) —
  the param value

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    181
    182
    183
    184
    185
    186
    187
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 181

    def set_query_param(paramName=nil,paramValue=nil)
      if paramName.class == String && paramValue.class == String && !block_given?
        @j_del.java_method(:setQueryParam, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(paramName,paramValue)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling set_query_param(#{paramName},#{paramValue})"
    end

### - (`self`) ssl(value = nil)

Parameters:

- value (`true`, `false`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    146
    147
    148
    149
    150
    151
    152
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 146

    def ssl(value=nil)
      if (value.class == TrueClass || value.class == FalseClass) && !block_given?
        @j_del.java_method(:ssl, [Java::boolean.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling ssl(#{value})"
    end

### - (`self`) timeout(value = nil)

Configures the amount of time in milliseconds after which if the request does not return any data within the timeout period an TimeoutException fails the request.

Setting zero or a negative `value` disables the timeout.

Parameters:

- value (`Fixnum`) (defaults to: `nil`) —
  The quantity of time in milliseconds.

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    159
    160
    161
    162
    163
    164
    165
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 159

    def timeout(value=nil)
      if value.class == Fixnum && !block_given?
        @j_del.java_method(:timeout, [Java::long.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling timeout(#{value})"
    end

### - (`self`) uri(value = nil)

Configure the request to use a new request URI `value`.

When the uri has query parameters, they are set in the #query_params multimap, overwritting any parameters previously set.

Parameters:

- value (`String`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    116
    117
    118
    119
    120
    121
    122
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 116

    def uri(value=nil)
      if value.class == String && !block_given?
        @j_del.java_method(:uri, [Java::java.lang.String.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling uri(#{value})"
    end

### - (`self`) virtual_host(value = nil)

Configure the request to use a virtual host `value`.

Usually the header host (:authority pseudo header for HTTP/2) is set from the request host value since this host value resolves to the server IP address.

Sometimes you need to set a host header for an address that does not resolve to the server IP address. The virtual host value overrides the value of the actual host header (:authority pseudo header for HTTP/2).

The virtual host is also be used for SNI.

Parameters:

- value (`String`) (defaults to: `nil`)

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    103
    104
    105
    106
    107
    108
    109
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web-client/http_request.rb', line 103

    def virtual_host(value=nil)
      if value.class == String && !block_given?
        @j_del.java_method(:virtualHost, [Java::java.lang.String.java_class]).call(value)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling virtual_host(#{value})"
    end