Class: Vertx::HttpClientRequest
- Inherits:
-
Object
- Object
- Vertx::HttpClientRequest
- Includes:
- ReadStream, WriteStream
- Defined in:
- /Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb
Overview
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:
Constant Summary
- @@j_api_type =
Object.new
Class Method Summary (collapse)
- + (Boolean) accept?(obj)
- + (Object) j_api_type
- + (Object) j_class
- + (Object) unwrap(obj)
- + (Object) wrap(obj)
Instance Method Summary (collapse)
-
- (true, false) chunked?
Is the request chunked?.
-
- (::Vertx::HttpConnection) connection
The HttpConnection associated with this request.
-
- (self) connection_handler { ... }
Set a connection handler called when an HTTP connection has been established.
-
- (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.
- - (self) drain_handler { ... }
-
- (void) end(param_1 = nil, param_2 = nil)
Same as #end but writes a String with the specified encoding.
- - (self) end_handler { ... }
- - (self) exception_handler { ... }
-
- (String) get_host
The request host.
-
- (String) get_raw_method
The raw value of the method this request sends.
- - (self) handler { ... }
-
- (::Vertx::MultiMap) headers
The HTTP headers.
-
- (:OPTIONS, ...) method
The HTTP method for the request.
-
- (String) path
The path part of the uri.
- - (self) pause
-
- (self) push_handler { ... }
Set a push handler for this request.
-
- (self) put_header(name = nil, value = nil)
Put an HTTP header.
-
- (String) query
The query part of the uri.
-
- (true, false) reset?(code = nil)
Reset this request: for HTTP/2, this performs send an HTTP/2 reset frame with the specified error code for HTTP/1.x, this closes the connection after the current in-flight requests are ended When the request has not yet been sent, the request will be aborted and false is returned as indicator.
- - (self) resume
-
- (self) send_head { ... }
Like #send_head but with an handler after headers have been sent.
-
- (self) set_chunked(chunked = nil)
If chunked is true then the request will be set into HTTP chunked mode.
-
- (self) set_host(host = nil)
Set the request host.
-
- (self) set_raw_method(method = nil)
Set the value the method to send when the method is used.
-
- (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.
- - (self) set_write_queue_max_size(maxSize = nil)
-
- (Fixnum) stream_id
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.
-
- (String) uri
The URI of the request.
-
- (self) write(param_1 = nil, param_2 = nil)
Write a String to the request body, encoded using the encoding enc.
-
- (self) write_custom_frame(param_1 = nil, param_2 = nil, param_3 = nil)
Write an HTTP/2 frame to the request, allowing to extend the HTTP/2 protocol.
-
- (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.
Class Method Details
+ (Boolean) accept?(obj)
50 51 52 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 50 def @@j_api_type.accept?(obj) obj.class == HttpClientRequest end |
+ (Object) j_api_type
59 60 61 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 59 def self.j_api_type @@j_api_type end |
+ (Object) j_class
62 63 64 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 62 def self.j_class Java::IoVertxCoreHttp::HttpClientRequest.java_class end |
+ (Object) unwrap(obj)
56 57 58 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 56 def @@j_api_type.unwrap(obj) obj.j_del end |
+ (Object) wrap(obj)
53 54 55 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 53 def @@j_api_type.wrap(obj) HttpClientRequest.new(obj) end |
Instance Method Details
- (true, false) chunked?
167 168 169 170 171 172 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 167 def chunked? if !block_given? return @j_del.java_method(:isChunked, []).call() end raise ArgumentError, "Invalid arguments when calling chunked?()" end |
- (::Vertx::HttpConnection) connection
370 371 372 373 374 375 376 377 378 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 370 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 { ... }
382 383 384 385 386 387 388 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 382 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 { ... }
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.
267 268 269 270 271 272 273 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 267 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 { ... }
115 116 117 118 119 120 121 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 115 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
298 299 300 301 302 303 304 305 306 307 308 309 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 298 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 { ... }
149 150 151 152 153 154 155 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 149 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 { ... }
75 76 77 78 79 80 81 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 75 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
232 233 234 235 236 237 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 232 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
182 183 184 185 186 187 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 182 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 { ... }
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 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
239 240 241 242 243 244 245 246 247 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 239 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
175 176 177 178 179 180 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 175 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
206 207 208 209 210 211 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 206 def path if !block_given? return @j_del.java_method(:path, []).call() end raise ArgumentError, "Invalid arguments when calling path()" end |
- (self) pause
132 133 134 135 136 137 138 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 132 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 { ... }
343 344 345 346 347 348 349 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 343 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)
252 253 254 255 256 257 258 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 252 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
213 214 215 216 217 218 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 213 def query if !block_given? return @j_del.java_method(:query, []).call() end raise ArgumentError, "Invalid arguments when calling query()" end |
- (true, false) reset?(code = nil)
- for HTTP/2, this performs send an HTTP/2 reset frame with the specified error
code
- for HTTP/1.x, this closes the connection after the current in-flight requests are ended
361 362 363 364 365 366 367 368 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 361 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
140 141 142 143 144 145 146 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 140 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 { ... }
278 279 280 281 282 283 284 285 286 287 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 278 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)
159 160 161 162 163 164 165 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 159 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)
224 225 226 227 228 229 230 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 224 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)
191 192 193 194 195 196 197 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 191 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)
Calling this method more than once has the effect of canceling any existing timeout and starting the timeout from scratch.
318 319 320 321 322 323 324 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 318 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)
106 107 108 109 110 111 112 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 106 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
413 414 415 416 417 418 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 413 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
199 200 201 202 203 204 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 199 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)
enc
.
91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 91 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)
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.
402 403 404 405 406 407 408 409 410 411 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 402 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?
true
if there are more bytes in the write queue than the value set using #set_write_queue_max_size
67 68 69 70 71 72 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx/http_client_request.rb', line 67 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 |