Class: Vertx::HttpClientRequest

Inherits:
Object
  • Object
show all
Includes:
ReadStream, WriteStream
Defined in:
/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb

Overview

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 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 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:

Instance Method Summary (collapse)

Instance Method Details

- (true, false) chunked?

@return Is the request chunked?

Returns:

  • (true, false)

Raises:

  • (ArgumentError)


152
153
154
155
156
157
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 152

def chunked?
  if !block_given?
    return @j_del.java_method(:isChunked, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling chunked?()"
end

- (::Vertx::HttpConnection) connection

@return the Vertx::HttpConnection associated with this request

Returns:

Raises:

  • (ArgumentError)


354
355
356
357
358
359
360
361
362
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 354

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

- (self) connection_handler { ... }

Set a connection handler called when an HTTP connection has been established.

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


366
367
368
369
370
371
372
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 366

def connection_handler
  if block_given?
    @j_del.java_method(:connectionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::HttpConnection)) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling connection_handler()"
end

- (self) continue_handler { ... }

If you send an HTTP request with the header Expect set to the value 100-continue and the server responds with an interim HTTP response with a status code of 100 and a continue handler has been set using this method, then the handler will be called.

You can then continue to write data to the request body and later end it. This is normally used in conjunction with the #send_head method to force the request header to be written before the request has ended.

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


258
259
260
261
262
263
264
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 258

def continue_handler
  if block_given?
    @j_del.java_method(:continueHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield })
    return self
  end
  raise ArgumentError, "Invalid arguments when calling continue_handler()"
end

- (self) drain_handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


99
100
101
102
103
104
105
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 99

def drain_handler
  if block_given?
    @j_del.java_method(:drainHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield })
    return self
  end
  raise ArgumentError, "Invalid arguments when calling drain_handler()"
end

- (void) end - (void) end(chunk) - (void) end(chunk) - (void) end(chunk, enc)

This method returns an undefined value.

Same as #end but writes a String with the specified encoding

Overloads:

  • - (void) end(chunk)

    Parameters:

    • chunk (String)
  • - (void) end(chunk)

    Parameters:

  • - (void) end(chunk, enc)

    Parameters:

    • chunk (String)
    • enc (String)

Raises:

  • (ArgumentError)


289
290
291
292
293
294
295
296
297
298
299
300
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 289

def end(param_1=nil,param_2=nil)
  if !block_given? && param_1 == nil && param_2 == nil
    return @j_del.java_method(:end, []).call()
  elsif param_1.class == String && !block_given? && param_2 == nil
    return @j_del.java_method(:end, [Java::java.lang.String.java_class]).call(param_1)
  elsif param_1.class.method_defined?(:j_del) && !block_given? && param_2 == nil
    return @j_del.java_method(:end, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(param_1.j_del)
  elsif param_1.class == String && param_2.class == String && !block_given?
    return @j_del.java_method(:end, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(param_1,param_2)
  end
  raise ArgumentError, "Invalid arguments when calling end(param_1,param_2)"
end

- (self) end_handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


133
134
135
136
137
138
139
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 133

def end_handler
  if block_given?
    @j_del.java_method(:endHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield })
    return self
  end
  raise ArgumentError, "Invalid arguments when calling end_handler()"
end

- (self) exception_handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


59
60
61
62
63
64
65
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 59

def exception_handler
  if block_given?
    @j_del.java_method(:exceptionHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.from_throwable(event)) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling exception_handler()"
end

- (String) get_host

@return the request host. For HTTP2 it returns the pseudo header otherwise it returns the header

Returns:

  • (String)

Raises:

  • (ArgumentError)


222
223
224
225
226
227
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 222

def get_host
  if !block_given?
    return @j_del.java_method(:getHost, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling get_host()"
end

- (String) get_raw_method

@return the raw value of the method this request sends

Returns:

  • (String)

Raises:

  • (ArgumentError)


168
169
170
171
172
173
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 168

def get_raw_method
  if !block_given?
    return @j_del.java_method(:getRawMethod, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling get_raw_method()"
end

- (self) handler { ... }

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


108
109
110
111
112
113
114
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 108

def handler
  if block_given?
    @j_del.java_method(:handler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::HttpClientResponse)) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling handler()"
end

- (::Vertx::MultiMap) headers

@return The HTTP headers

Returns:

Raises:

  • (ArgumentError)


230
231
232
233
234
235
236
237
238
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 230

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

- (:OPTIONS, ...) method

The HTTP method for the request.

Returns:

  • (:OPTIONS, :GET, :HEAD, :POST, :PUT, :DELETE, :TRACE, :CONNECT, :PATCH, :OTHER)

Raises:

  • (ArgumentError)


160
161
162
163
164
165
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 160

def method
  if !block_given?
    return @j_del.java_method(:method, []).call().name.intern
  end
  raise ArgumentError, "Invalid arguments when calling method()"
end

- (String) path

@return The path part of the uri. For example /somepath/somemorepath/someresource.foo

Returns:

  • (String)

Raises:

  • (ArgumentError)


194
195
196
197
198
199
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 194

def path
  if !block_given?
    return @j_del.java_method(:path, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling path()"
end

- (self) pause

Returns:

  • (self)

Raises:

  • (ArgumentError)


116
117
118
119
120
121
122
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 116

def pause
  if !block_given?
    @j_del.java_method(:pause, []).call()
    return self
  end
  raise ArgumentError, "Invalid arguments when calling pause()"
end

- (self) push_handler { ... }

Set a push handler for this request.

The handler is called when the client receives a push promise from the server. The handler can be called multiple times, for each push promise.

The handler is called with a read-only Vertx::HttpClientRequest, the following methods can be called:

In addition the handler should call the #handler method to set an handler to process the response.

Yields:

  • the handler

Returns:

  • (self)

Raises:

  • (ArgumentError)


334
335
336
337
338
339
340
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 334

def push_handler
  if block_given?
    @j_del.java_method(:pushHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::HttpClientRequest)) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling push_handler()"
end

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

Put an HTTP header

Parameters:

  • name (String) (defaults to: nil)
    The header name
  • value (String) (defaults to: nil)
    The header value

Returns:

  • (self)

Raises:

  • (ArgumentError)


243
244
245
246
247
248
249
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 243

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

- (String) query

@return the query part of the uri. For example someparam=32&someotherparam=x

Returns:

  • (String)

Raises:

  • (ArgumentError)


202
203
204
205
206
207
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 202

def query
  if !block_given?
    return @j_del.java_method(:query, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling query()"
end

- (void) reset(code = nil)

This method returns an undefined value.

Reset this stream with the error code.

Parameters:

  • code (Fixnum) (defaults to: nil)
    the error code

Raises:

  • (ArgumentError)


344
345
346
347
348
349
350
351
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 344

def reset(code=nil)
  if !block_given? && code == nil
    return @j_del.java_method(:reset, []).call()
  elsif code.class == Fixnum && !block_given?
    return @j_del.java_method(:reset, [Java::long.java_class]).call(code)
  end
  raise ArgumentError, "Invalid arguments when calling reset(code)"
end

- (self) resume

Returns:

  • (self)

Raises:

  • (ArgumentError)


124
125
126
127
128
129
130
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 124

def resume
  if !block_given?
    @j_del.java_method(:resume, []).call()
    return self
  end
  raise ArgumentError, "Invalid arguments when calling resume()"
end

- (self) send_head { ... }

Like #send_head but with an handler after headers have been sent. The handler will be called with the HttpVersion if it can be determined or null otherwise.

Yields:

Returns:

  • (self)

Raises:

  • (ArgumentError)


269
270
271
272
273
274
275
276
277
278
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 269

def send_head
  if !block_given?
    @j_del.java_method(:sendHead, []).call()
    return self
  elsif block_given?
    @j_del.java_method(:sendHead, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(event.name.intern) }))
    return self
  end
  raise ArgumentError, "Invalid arguments when calling send_head()"
end

- (self) set_chunked(chunked = nil)

If chunked is true then the request will be set into HTTP chunked mode

Parameters:

  • chunked (true, false) (defaults to: nil)
    true if chunked encoding

Returns:

  • (self)

Raises:

  • (ArgumentError)


143
144
145
146
147
148
149
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 143

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

- (self) set_host(host = nil)

Set the request host.

For HTTP2 it sets the pseudo header otherwise it sets the header

Parameters:

  • host (String) (defaults to: nil)

Returns:

  • (self)

Raises:

  • (ArgumentError)


213
214
215
216
217
218
219
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 213

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

- (self) set_raw_method(method = nil)

Set the value the method to send when the method is used.

Parameters:

  • method (String) (defaults to: nil)
    the raw method

Returns:

  • (self)

Raises:

  • (ArgumentError)


177
178
179
180
181
182
183
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 177

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

- (self) set_timeout(timeoutMs = nil)

Set's the amount of time after which if the request does not return any data within the timeout period an TimeoutException will be passed to the exception handler (if provided) and the request will be closed.

Calling this method more than once has the effect of canceling any existing timeout and starting the timeout from scratch.

Parameters:

  • timeoutMs (Fixnum) (defaults to: nil)
    The quantity of time in milliseconds.

Returns:

  • (self)

Raises:

  • (ArgumentError)


309
310
311
312
313
314
315
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 309

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

- (self) set_write_queue_max_size(maxSize = nil)

Parameters:

  • maxSize (Fixnum) (defaults to: nil)

Returns:

  • (self)

Raises:

  • (ArgumentError)


90
91
92
93
94
95
96
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 90

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

- (Fixnum) stream_id

@return 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

Returns:

  • (Fixnum)

Raises:

  • (ArgumentError)


399
400
401
402
403
404
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 399

def stream_id
  if !block_given?
    return @j_del.java_method(:streamId, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling stream_id()"
end

- (String) uri

@return The URI of the request.

Returns:

  • (String)

Raises:

  • (ArgumentError)


186
187
188
189
190
191
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 186

def uri
  if !block_given?
    return @j_del.java_method(:uri, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling uri()"
end

- (self) write(data) - (self) write(chunk) - (self) write(chunk, enc)

Write a String to the request body, encoded using the encoding enc.

Overloads:

  • - (self) write(data)

    Parameters:

  • - (self) write(chunk)

    Parameters:

    • chunk (String)
  • - (self) write(chunk, enc)

    Parameters:

    • chunk (String)
    • enc (String)

Returns:

  • (self)

Raises:

  • (ArgumentError)


75
76
77
78
79
80
81
82
83
84
85
86
87
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 75

def write(param_1=nil,param_2=nil)
  if param_1.class.method_defined?(:j_del) && !block_given? && param_2 == nil
    @j_del.java_method(:write, [Java::IoVertxCoreBuffer::Buffer.java_class]).call(param_1.j_del)
    return self
  elsif param_1.class == String && !block_given? && param_2 == nil
    @j_del.java_method(:write, [Java::java.lang.String.java_class]).call(param_1)
    return self
  elsif param_1.class == String && param_2.class == String && !block_given?
    @j_del.java_method(:write, [Java::java.lang.String.java_class,Java::java.lang.String.java_class]).call(param_1,param_2)
    return self
  end
  raise ArgumentError, "Invalid arguments when calling write(param_1,param_2)"
end

- (self) writeCustomFrame(frame) - (self) writeCustomFrame(type, flags, payload)

Write an HTTP/2 frame to the request, allowing to extend the HTTP/2 protocol.

The frame is sent immediatly and is not subject to flow control.

This method must be called after the request headers have been sent and only for the protocol HTTP/2. The #send_head should be used for this purpose.

Overloads:

  • - (self) writeCustomFrame(frame)

    Parameters:

  • - (self) writeCustomFrame(type, flags, payload)

    Parameters:

    • type (Fixnum)
      the 8-bit frame type
    • flags (Fixnum)
      the 8-bit frame flags
    • payload (::Vertx::Buffer)
      the frame payload

Returns:

  • (self)

Raises:

  • (ArgumentError)


386
387
388
389
390
391
392
393
394
395
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 386

def write_custom_frame(param_1=nil,param_2=nil,param_3=nil)
  if param_1.class.method_defined?(:j_del) && !block_given? && param_2 == nil && param_3 == nil
    @j_del.java_method(:writeCustomFrame, [Java::IoVertxCoreHttp::HttpFrame.java_class]).call(param_1.j_del)
    return self
  elsif param_1.class == Fixnum && param_2.class == Fixnum && param_3.class.method_defined?(:j_del) && !block_given?
    @j_del.java_method(:writeCustomFrame, [Java::int.java_class,Java::int.java_class,Java::IoVertxCoreBuffer::Buffer.java_class]).call(param_1,param_2,param_3.j_del)
    return self
  end
  raise ArgumentError, "Invalid arguments when calling write_custom_frame(param_1,param_2,param_3)"
end

- (true, false) write_queue_full?

This will return true if there are more bytes in the write queue than the value set using #set_write_queue_max_size

Returns:

  • (true, false)
    true if write queue is full

Raises:

  • (ArgumentError)


51
52
53
54
55
56
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 51

def write_queue_full?
  if !block_given?
    return @j_del.java_method(:writeQueueFull, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling write_queue_full?()"
end