public class HttpClientRequest extends Object implements WriteStream<Buffer>, ReadStream<HttpClientResponse>
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 RX-ified interface using Vert.x codegen.Constructor and Description |
---|
HttpClientRequest(HttpClientRequest delegate) |
Modifier and Type | Method and Description |
---|---|
HttpClientRequest |
continueHandler(Handler<Void> 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. |
HttpClientRequest |
drainHandler(Handler<Void> handler)
Set a drain handler on the stream.
|
void |
end()
Ends the request.
|
void |
end(Buffer chunk)
Same as
HttpClientRequest but writes some data to the request body before ending. |
void |
end(String chunk)
Same as
end(java.lang.String) but writes a String in UTF-8 encoding |
void |
end(String chunk,
String enc)
Same as
HttpClientRequest but writes a String with the specified encoding |
HttpClientRequest |
endHandler(Handler<Void> endHandler)
Set an end handler.
|
HttpClientRequest |
exceptionHandler(Handler<Throwable> handler)
Set an exception handler on the write stream.
|
Object |
getDelegate() |
HttpClientRequest |
handler(Handler<HttpClientResponse> handler)
Set a data handler.
|
MultiMap |
headers() |
boolean |
isChunked() |
HttpMethod |
method()
The HTTP method for the request.
|
static HttpClientRequest |
newInstance(HttpClientRequest arg) |
HttpClientRequest |
pause()
Pause the
ReadSupport . |
HttpClientRequest |
putHeader(String name,
String value)
Put an HTTP header
|
HttpClientRequest |
resume()
Resume reading.
|
HttpClientRequest |
sendHead()
Forces the head of the request to be written before
end(java.lang.String) is called on the request or any data is
written to it. |
HttpClientRequest |
setChunked(boolean chunked)
If chunked is true then the request will be set into HTTP chunked mode
|
HttpClientRequest |
setTimeout(long timeoutMs)
Set's the amount of time after which if a response is not received
TimeoutException
will be sent to the exception handler of this request. |
HttpClientRequest |
setWriteQueueMaxSize(int maxSize)
Set the maximum size of the write queue to
maxSize . |
rx.Observable<HttpClientResponse> |
toObservable() |
String |
uri() |
HttpClientRequest |
write(Buffer data)
Write some data to the stream.
|
HttpClientRequest |
write(String chunk)
Write a
String to the request body, encoded as UTF-8. |
HttpClientRequest |
write(String chunk,
String enc)
Write a
String to the request body, encoded using the encoding enc . |
boolean |
writeQueueFull()
This will return
true if there are more bytes in the write queue than the value set using setWriteQueueMaxSize(int) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
newInstance
newInstance
newInstance
public HttpClientRequest(HttpClientRequest delegate)
public Object getDelegate()
getDelegate
in interface ReadStream<HttpClientResponse>
getDelegate
in interface StreamBase
getDelegate
in interface WriteStream<Buffer>
public rx.Observable<HttpClientResponse> toObservable()
toObservable
in interface ReadStream<HttpClientResponse>
public boolean writeQueueFull()
true
if there are more bytes in the write queue than the value set using setWriteQueueMaxSize(int)
writeQueueFull
in interface WriteStream<Buffer>
public HttpClientRequest exceptionHandler(Handler<Throwable> handler)
WriteStream
exceptionHandler
in interface ReadStream<HttpClientResponse>
exceptionHandler
in interface StreamBase
exceptionHandler
in interface WriteStream<Buffer>
handler
- the exception handlerpublic HttpClientRequest write(Buffer data)
WriteStream
WriteStream.writeQueueFull()
method before writing. This is done automatically if using a Pump
.write
in interface WriteStream<Buffer>
data
- IllegalStateException
- when no response handler is setpublic HttpClientRequest setWriteQueueMaxSize(int maxSize)
WriteStream
maxSize
. You will still be able to write to the stream even
if there is more than maxSize
bytes in the write queue. This is used as an indicator by classes such as
Pump
to provide flow control.setWriteQueueMaxSize
in interface WriteStream<Buffer>
maxSize
- the max size of the write streampublic HttpClientRequest drainHandler(Handler<Void> handler)
WriteStream
Pump
for an example of this being used.drainHandler
in interface WriteStream<Buffer>
handler
- the handlerpublic HttpClientRequest handler(Handler<HttpClientResponse> handler)
ReadStream
handler
in interface ReadStream<HttpClientResponse>
public HttpClientRequest pause()
ReadStream
ReadSupport
. While it's paused, no data will be sent to the dataHandler
pause
in interface ReadStream<HttpClientResponse>
public HttpClientRequest resume()
ReadStream
ReadSupport
has been paused, reading will recommence on it.resume
in interface ReadStream<HttpClientResponse>
public HttpClientRequest endHandler(Handler<Void> endHandler)
ReadStream
endHandler
in interface ReadStream<HttpClientResponse>
public HttpClientRequest setChunked(boolean chunked)
chunked
- true if chunked encodingpublic boolean isChunked()
public HttpMethod method()
public String uri()
public MultiMap headers()
public HttpClientRequest putHeader(String name, String value)
name
- The header namevalue
- The header valuepublic HttpClientRequest write(String chunk)
String
to the request body, encoded as UTF-8.chunk
- public HttpClientRequest write(String chunk, String enc)
String
to the request body, encoded using the encoding enc
.chunk
- enc
- public HttpClientRequest continueHandler(Handler<Void> 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 sendHead()
method to force the request header to be written before the request has ended.
handler
- public HttpClientRequest sendHead()
end(java.lang.String)
is called on the request or any data is
written to it.
This is normally used to implement HTTP 100-continue handling, see continueHandler(io.vertx.core.Handler<java.lang.Void>)
for
more information.
public void end(String chunk)
end(java.lang.String)
but writes a String in UTF-8 encodingchunk
- public void end(String chunk, String enc)
HttpClientRequest
but writes a String with the specified encodingchunk
- enc
- public void end(Buffer chunk)
HttpClientRequest
but writes some data to the request body before ending. If the request is not chunked and
no other data has been written then the Content-Length
header will be automatically setchunk
- public void end()
HttpClientRequest
has not been called then
the actual request won't get written until this method gets called.
Once the request has ended, it cannot be used any more,
public HttpClientRequest setTimeout(long timeoutMs)
TimeoutException
will be sent to the exception handler of this request.
Calling this method more than once has the effect of canceling any existing timeout and starting the timeout from scratch.
timeoutMs
- The quantity of time in milliseconds.public static HttpClientRequest newInstance(HttpClientRequest arg)
Copyright © 2015. All Rights Reserved.