public class HttpRequest<T> extends Object
Instances are created by an WebClient
instance, via one of the methods corresponding to the specific
HTTP methods such as WebClient.get(java.lang.String)
, 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(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
sendStream(io.vertx.reactivex.core.streams.ReadStream<io.vertx.reactivex.core.buffer.Buffer>, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
sendForm(io.vertx.reactivex.core.MultiMap, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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
HttpResponse
instance when the HTTP response has been receivedMost of the time, this client will buffer the HTTP response fully unless a specific is used such as .
NOTE: This class has been automatically generated from theoriginal
non RX-ified interface using Vert.x codegen.Modifier and Type | Field and Description |
---|---|
static io.vertx.lang.rx.TypeArg<HttpRequest> |
__TYPE_ARG |
io.vertx.lang.rx.TypeArg<T> |
__typeArg_0 |
Constructor and Description |
---|
HttpRequest(HttpRequest delegate) |
HttpRequest(Object delegate,
io.vertx.lang.rx.TypeArg<T> typeArg_0) |
Modifier and Type | Method and Description |
---|---|
HttpRequest<T> |
addQueryParam(String paramName,
String paramValue)
Add a query parameter to the request.
|
<U> HttpRequest<U> |
as(BodyCodec<U> responseCodec)
Configure the request to decode the response with the
responseCodec . |
HttpRequest<T> |
authentication(Credentials credentials)
Configure the request to perform HTTP Authentication.
|
HttpRequest<T> |
basicAuthentication(Buffer id,
Buffer password)
Configure the request to perform basic access authentication.
|
HttpRequest<T> |
basicAuthentication(String id,
String password)
Configure the request to perform basic access authentication.
|
HttpRequest<T> |
bearerTokenAuthentication(String bearerToken)
Configure the request to perform bearer token authentication.
|
HttpRequest<T> |
copy()
Copy this request
|
boolean |
equals(Object o) |
HttpRequest<T> |
expect(java.util.function.Function<HttpResponse<Void>,ResponsePredicateResult> predicate)
Add an expectation that the response is valid according to the provided
predicate . |
HttpRequest<T> |
expect(ResponsePredicate predicate)
Add an expectation that the response is valid according to the provided
predicate . |
HttpRequest<T> |
followRedirects(boolean value)
Set wether or not to follow the directs for the request.
|
HttpRequest |
getDelegate() |
int |
hashCode() |
MultiMap |
headers() |
HttpRequest<T> |
host(String value)
Configure the request to use a new host
value . |
HttpRequest<T> |
method(HttpMethod value)
Configure the request to use a new method
value . |
HttpRequest<T> |
multipartMixed(boolean allow)
Allow or disallow multipart mixed encoding when sending having files sharing the same
file name.
|
static <T> HttpRequest<T> |
newInstance(HttpRequest arg) |
static <T> HttpRequest<T> |
newInstance(HttpRequest arg,
io.vertx.lang.rx.TypeArg<T> __typeArg_T) |
HttpRequest<T> |
port(int value)
Configure the request to use a new port
value . |
HttpRequest<T> |
putHeader(String name,
Iterable<String> value)
Configure the request to set a new HTTP header with multiple values.
|
HttpRequest<T> |
putHeader(String name,
String value)
Configure the request to set a new HTTP header.
|
HttpRequest<T> |
putHeaders(MultiMap headers)
Configure the request to add multiple HTTP headers .
|
MultiMap |
queryParams()
Return the current query parameters.
|
Single<HttpResponse<T>> |
rxSend()
Send a request, the
handler will receive the response as an HttpResponse . |
Single<HttpResponse<T>> |
rxSendBuffer(Buffer body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body buffer. |
Single<HttpResponse<T>> |
rxSendForm(MultiMap body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to application/x-www-form-urlencoded . |
Single<HttpResponse<T>> |
rxSendForm(MultiMap body,
String charset)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to application/x-www-form-urlencoded . |
Single<HttpResponse<T>> |
rxSendJson(Object body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body object encoded as json and the content type
set to application/json . |
Single<HttpResponse<T>> |
rxSendJsonObject(JsonObject body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body object encoded as json and the content type
set to application/json . |
Single<HttpResponse<T>> |
rxSendMultipartForm(MultipartForm body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to multipart/form-data . |
Single<HttpResponse<T>> |
rxSendStream(Flowable<Buffer> body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body stream. |
Single<HttpResponse<T>> |
rxSendStream(ReadStream<Buffer> body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body stream. |
void |
send()
Send a request, the
handler will receive the response as an HttpResponse . |
void |
send(Handler<AsyncResult<HttpResponse<T>>> handler)
Send a request, the
handler will receive the response as an HttpResponse . |
void |
sendBuffer(Buffer body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body buffer. |
void |
sendBuffer(Buffer body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body buffer. |
void |
sendForm(MultiMap body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to application/x-www-form-urlencoded . |
void |
sendForm(MultiMap body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to application/x-www-form-urlencoded . |
void |
sendForm(MultiMap body,
String charset)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to application/x-www-form-urlencoded . |
void |
sendForm(MultiMap body,
String charset,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to application/x-www-form-urlencoded . |
void |
sendJson(Object body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body object encoded as json and the content type
set to application/json . |
void |
sendJson(Object body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body object encoded as json and the content type
set to application/json . |
void |
sendJsonObject(JsonObject body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body object encoded as json and the content type
set to application/json . |
void |
sendJsonObject(JsonObject body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body object encoded as json and the content type
set to application/json . |
void |
sendMultipartForm(MultipartForm body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to multipart/form-data . |
void |
sendMultipartForm(MultipartForm body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body multimap encoded as form and the content type
set to multipart/form-data . |
void |
sendStream(Flowable<Buffer> body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body stream. |
void |
sendStream(Flowable<Buffer> body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body stream. |
void |
sendStream(ReadStream<Buffer> body)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body stream. |
void |
sendStream(ReadStream<Buffer> body,
Handler<AsyncResult<HttpResponse<T>>> handler)
Like
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>) but with an HTTP request body stream. |
HttpRequest<T> |
setQueryParam(String paramName,
String paramValue)
Set a query parameter to the request.
|
HttpRequest<T> |
ssl(Boolean value) |
HttpRequest<T> |
timeout(long value)
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. |
String |
toString() |
HttpRequest<T> |
uri(String value)
Configure the request to use a new request URI
value . |
HttpRequest<T> |
virtualHost(String value)
Configure the request to use a virtual host
value . |
public static final io.vertx.lang.rx.TypeArg<HttpRequest> __TYPE_ARG
public final io.vertx.lang.rx.TypeArg<T> __typeArg_0
public HttpRequest(HttpRequest delegate)
public HttpRequest getDelegate()
public HttpRequest<T> method(HttpMethod value)
value
.value
- public HttpRequest<T> port(int value)
value
.value
- public <U> HttpRequest<U> as(BodyCodec<U> responseCodec)
responseCodec
.responseCodec
- the response codecpublic HttpRequest<T> host(String value)
value
.value
- public HttpRequest<T> virtualHost(String value)
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.value
- public HttpRequest<T> uri(String value)
value
.
When the uri has query parameters, they are set in the queryParams()
multimap, overwritting
any parameters previously set.
value
- public HttpRequest<T> putHeaders(MultiMap headers)
headers
- The HTTP headerspublic HttpRequest<T> putHeader(String name, String value)
name
- the header namevalue
- the header valuepublic MultiMap headers()
public HttpRequest<T> basicAuthentication(String id, String password)
In basic HTTP authentication, a request contains a header field of the form 'Authorization: Basic <credentials>', where credentials is the base64 encoding of id and password joined by a colon.
In practical terms the arguments are converted to a object.id
- the idpassword
- the passwordpublic HttpRequest<T> basicAuthentication(Buffer id, Buffer password)
In basic HTTP authentication, a request contains a header field of the form 'Authorization: Basic <credentials>', where credentials is the base64 encoding of id and password joined by a colon.
In practical terms the arguments are converted to a object.id
- the idpassword
- the passwordpublic HttpRequest<T> bearerTokenAuthentication(String bearerToken)
In OAuth 2.0, a request contains a header field of the form 'Authorization: Bearer <bearerToken>', where bearerToken is the bearer token issued by an authorization server to access protected resources.
In practical terms the arguments are converted to a object.bearerToken
- the bearer tokenpublic HttpRequest<T> ssl(Boolean value)
public HttpRequest<T> timeout(long value)
TimeoutException
fails the request.
Setting zero or a negative value
disables the timeout.
value
- The quantity of time in milliseconds.public HttpRequest<T> addQueryParam(String paramName, String paramValue)
paramName
- the param nameparamValue
- the param valuepublic HttpRequest<T> setQueryParam(String paramName, String paramValue)
paramName
- the param nameparamValue
- the param valuepublic HttpRequest<T> followRedirects(boolean value)
value
- true if redirections should be followedpublic HttpRequest<T> expect(java.util.function.Function<HttpResponse<Void>,ResponsePredicateResult> predicate)
predicate
.
Multiple predicates can be added.
predicate
- the predicatepublic HttpRequest<T> expect(ResponsePredicate predicate)
predicate
.
Multiple predicates can be added.
predicate
- the predicatepublic MultiMap queryParams()
public HttpRequest<T> copy()
public HttpRequest<T> multipartMixed(boolean allow)
true
.
false
if you want to achieve the behavior for HTML5.allow
- true
allows use of multipart mixed encodingpublic void sendStream(ReadStream<Buffer> body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
stream.body
- the bodyhandler
- public void sendStream(ReadStream<Buffer> body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
stream.body
- the bodypublic Single<HttpResponse<T>> rxSendStream(ReadStream<Buffer> body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
stream.body
- the bodypublic void sendStream(Flowable<Buffer> body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
stream.body
- the bodyhandler
- public void sendStream(Flowable<Buffer> body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
stream.body
- the bodypublic Single<HttpResponse<T>> rxSendStream(Flowable<Buffer> body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
stream.body
- the bodypublic void sendBuffer(Buffer body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
buffer.body
- the bodyhandler
- public void sendBuffer(Buffer body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
buffer.body
- the bodypublic Single<HttpResponse<T>> rxSendBuffer(Buffer body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
buffer.body
- the bodypublic void sendJsonObject(JsonObject body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
object encoded as json and the content type
set to application/json
.body
- the bodyhandler
- public void sendJsonObject(JsonObject body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
object encoded as json and the content type
set to application/json
.body
- the bodypublic Single<HttpResponse<T>> rxSendJsonObject(JsonObject body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
object encoded as json and the content type
set to application/json
.body
- the bodypublic void sendJson(Object body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
object encoded as json and the content type
set to application/json
.body
- the bodyhandler
- public void sendJson(Object body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
object encoded as json and the content type
set to application/json
.body
- the bodypublic Single<HttpResponse<T>> rxSendJson(Object body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
but with an HTTP request body
object encoded as json and the content type
set to application/json
.body
- the bodypublic void sendForm(MultiMap body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.
body
- the bodyhandler
- public void sendForm(MultiMap body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.
body
- the bodypublic Single<HttpResponse<T>> rxSendForm(MultiMap body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.
body
- the bodypublic void sendForm(MultiMap body, String charset, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.
NOTE: the use of this method is strongly discouraged to use when the form is a application/x-www-form-urlencoded
encoded form since the charset to use must be UTF-8.
body
- the bodycharset
- handler
- public void sendForm(MultiMap body, String charset)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.
NOTE: the use of this method is strongly discouraged to use when the form is a application/x-www-form-urlencoded
encoded form since the charset to use must be UTF-8.
body
- the bodycharset
- public Single<HttpResponse<T>> rxSendForm(MultiMap body, String charset)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.
NOTE: the use of this method is strongly discouraged to use when the form is a application/x-www-form-urlencoded
encoded form since the charset to use must be UTF-8.
body
- the bodycharset
- public void sendMultipartForm(MultipartForm body, Handler<AsyncResult<HttpResponse<T>>> handler)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.body
- the bodyhandler
- public void sendMultipartForm(MultipartForm body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.body
- the bodypublic Single<HttpResponse<T>> rxSendMultipartForm(MultipartForm body)
send(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.reactivex.ext.web.client.HttpResponse<T>>>)
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.body
- the bodypublic void send(Handler<AsyncResult<HttpResponse<T>>> handler)
handler
will receive the response as an HttpResponse
.handler
- public void send()
handler
will receive the response as an HttpResponse
.public Single<HttpResponse<T>> rxSend()
handler
will receive the response as an HttpResponse
.public HttpRequest<T> putHeader(String name, Iterable<String> value)
name
- the header namevalue
- the header valuepublic HttpRequest<T> authentication(Credentials credentials)
Performs a generic authentication using the credentials provided by the user. For the sake of validation safety it is recommended that is called to ensure that the credentials are applicable to the HTTP Challenged received on a previous request that returned a 401 response code.
credentials
- the credentials to use.public static <T> HttpRequest<T> newInstance(HttpRequest arg)
public static <T> HttpRequest<T> newInstance(HttpRequest arg, io.vertx.lang.rx.TypeArg<T> __typeArg_T)
Copyright © 2021 Eclipse. All rights reserved.