Class HttpClient
- java.lang.Object
-
- io.vertx.reactivex.core.http.HttpClient
-
- All Implemented Interfaces:
Measured
public class HttpClient extends Object implements Measured
An asynchronous HTTP client.It allows you to make requests to HTTP servers, and a single client can make requests to any server.
It also allows you to open WebSockets to servers.
The client can also pool HTTP connections.
For pooling to occur, keep-alive must be true on the
HttpClientOptions
(default is true). In this case connections will be pooled and re-used if there are pending HTTP requests waiting to get a connection, otherwise they will be closed.This gives the benefits of keep alive when the client is loaded but means we don't keep connections hanging around unnecessarily when there would be no benefits anyway.
The client also supports pipe-lining of requests. Pipe-lining means another request is sent on the same connection before the response from the preceding one has returned. Pipe-lining is not appropriate for all requests.
To enable pipe-lining, it must be enabled on the
HttpClientOptions
(default is false).When pipe-lining is enabled the connection will be automatically closed when all in-flight responses have returned and there are no outstanding pending requests to write.
The client is designed to be reused between requests.
NOTE: This class has been automatically generated from theoriginal
non RX-ified interface using Vert.x codegen.
-
-
Field Summary
Fields Modifier and Type Field Description static TypeArg<HttpClient>
__TYPE_ARG
-
Constructor Summary
Constructors Constructor Description HttpClient(HttpClient delegate)
HttpClient(Object delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close the client.void
close(Handler<AsyncResult<Void>> handler)
Close the client.HttpClient
connectionHandler(Handler<HttpConnection> handler)
Set a connection handler for the client.boolean
equals(Object o)
HttpClient
getDelegate()
int
hashCode()
boolean
isMetricsEnabled()
Whether the metrics are enabled for this measured objectstatic HttpClient
newInstance(HttpClient arg)
HttpClient
redirectHandler(io.reactivex.functions.Function<HttpClientResponse,io.reactivex.Single<RequestOptions>> handler)
Set a redirect handler for the http client.HttpClient
redirectHandler(Function<HttpClientResponse,Future<RequestOptions>> handler)
Set a redirect handler for the http client.void
request(HttpMethod method, int port, String host, String requestURI)
Create an HTTP request to send to the server at thehost
andport
.void
request(HttpMethod method, int port, String host, String requestURI, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server at thehost
andport
.void
request(HttpMethod method, String requestURI)
Create an HTTP request to send to the server at the default host and port.void
request(HttpMethod method, String requestURI, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server at the default host and port.void
request(HttpMethod method, String host, String requestURI)
Create an HTTP request to send to the server at thehost
and default port.void
request(HttpMethod method, String host, String requestURI, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server at thehost
and default port.void
request(RequestOptions options)
Create an HTTP request to send to the server.void
request(RequestOptions options, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server.io.reactivex.Completable
rxClose()
Close the client.io.reactivex.Single<HttpClientRequest>
rxRequest(HttpMethod method, int port, String host, String requestURI)
Create an HTTP request to send to the server at thehost
andport
.io.reactivex.Single<HttpClientRequest>
rxRequest(HttpMethod method, String requestURI)
Create an HTTP request to send to the server at the default host and port.io.reactivex.Single<HttpClientRequest>
rxRequest(HttpMethod method, String host, String requestURI)
Create an HTTP request to send to the server at thehost
and default port.io.reactivex.Single<HttpClientRequest>
rxRequest(RequestOptions options)
Create an HTTP request to send to the server.io.reactivex.Completable
rxUpdateSSLOptions(SSLOptions options)
LikeupdateSSLOptions(io.vertx.core.net.SSLOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>)
but supplying a handler that will be called when the update happened (or has failed).io.reactivex.Single<WebSocket>
rxWebSocket(int port, String host, String requestURI)
Connect a WebSocket to the specified port, host and relative request URIio.reactivex.Single<WebSocket>
rxWebSocket(WebSocketConnectOptions options)
Connect a WebSocket with the specified options.io.reactivex.Single<WebSocket>
rxWebSocket(String requestURI)
Connect a WebSocket at the relative request URI using the default host and portio.reactivex.Single<WebSocket>
rxWebSocket(String host, String requestURI)
Connect a WebSocket to the host and relative request URI and default portio.reactivex.Single<WebSocket>
rxWebSocketAbs(String url, MultiMap headers, WebsocketVersion version, List<String> subProtocols)
Connect a WebSocket with the specified absolute url, with the specified headers, using the specified version of WebSockets, and the specified WebSocket sub protocols.String
toString()
void
updateSSLOptions(SSLOptions options)
LikeupdateSSLOptions(io.vertx.core.net.SSLOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>)
but supplying a handler that will be called when the update happened (or has failed).void
updateSSLOptions(SSLOptions options, Handler<AsyncResult<Void>> handler)
LikeupdateSSLOptions(io.vertx.core.net.SSLOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>)
but supplying a handler that will be called when the update happened (or has failed).void
webSocket(int port, String host, String requestURI)
Connect a WebSocket to the specified port, host and relative request URIvoid
webSocket(int port, String host, String requestURI, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket to the specified port, host and relative request URIvoid
webSocket(WebSocketConnectOptions options)
Connect a WebSocket with the specified options.void
webSocket(WebSocketConnectOptions options, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket with the specified options.void
webSocket(String requestURI)
Connect a WebSocket at the relative request URI using the default host and portvoid
webSocket(String requestURI, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket at the relative request URI using the default host and portvoid
webSocket(String host, String requestURI)
Connect a WebSocket to the host and relative request URI and default portvoid
webSocket(String host, String requestURI, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket to the host and relative request URI and default portvoid
webSocketAbs(String url, MultiMap headers, WebsocketVersion version, List<String> subProtocols)
Connect a WebSocket with the specified absolute url, with the specified headers, using the specified version of WebSockets, and the specified WebSocket sub protocols.void
webSocketAbs(String url, MultiMap headers, WebsocketVersion version, List<String> subProtocols, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket with the specified absolute url, with the specified headers, using the specified version of WebSockets, and the specified WebSocket sub protocols.
-
-
-
Field Detail
-
__TYPE_ARG
public static final TypeArg<HttpClient> __TYPE_ARG
-
-
Constructor Detail
-
HttpClient
public HttpClient(HttpClient delegate)
-
HttpClient
public HttpClient(Object delegate)
-
-
Method Detail
-
getDelegate
public HttpClient getDelegate()
- Specified by:
getDelegate
in interfaceMeasured
-
isMetricsEnabled
public boolean isMetricsEnabled()
Whether the metrics are enabled for this measured object- Specified by:
isMetricsEnabled
in interfaceMeasured
- Returns:
true
if metrics are enabled
-
request
public void request(RequestOptions options, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server. Thehandler
is called when the request is ready to be sent.- Parameters:
options
- the request optionshandler
- the handler called when the request is ready to be sent
-
request
public void request(RequestOptions options)
Create an HTTP request to send to the server. Thehandler
is called when the request is ready to be sent.- Parameters:
options
- the request options
-
rxRequest
public io.reactivex.Single<HttpClientRequest> rxRequest(RequestOptions options)
Create an HTTP request to send to the server. Thehandler
is called when the request is ready to be sent.- Parameters:
options
- the request options- Returns:
-
request
public void request(HttpMethod method, int port, String host, String requestURI, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server at thehost
andport
. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodport
- the porthost
- the hostrequestURI
- the relative URIhandler
- the handler called when the request is ready to be sent
-
request
public void request(HttpMethod method, int port, String host, String requestURI)
Create an HTTP request to send to the server at thehost
andport
. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodport
- the porthost
- the hostrequestURI
- the relative URI
-
rxRequest
public io.reactivex.Single<HttpClientRequest> rxRequest(HttpMethod method, int port, String host, String requestURI)
Create an HTTP request to send to the server at thehost
andport
. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodport
- the porthost
- the hostrequestURI
- the relative URI- Returns:
-
request
public void request(HttpMethod method, String host, String requestURI, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server at thehost
and default port. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodhost
- the hostrequestURI
- the relative URIhandler
- the handler called when the request is ready to be sent
-
request
public void request(HttpMethod method, String host, String requestURI)
Create an HTTP request to send to the server at thehost
and default port. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodhost
- the hostrequestURI
- the relative URI
-
rxRequest
public io.reactivex.Single<HttpClientRequest> rxRequest(HttpMethod method, String host, String requestURI)
Create an HTTP request to send to the server at thehost
and default port. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodhost
- the hostrequestURI
- the relative URI- Returns:
-
request
public void request(HttpMethod method, String requestURI, Handler<AsyncResult<HttpClientRequest>> handler)
Create an HTTP request to send to the server at the default host and port. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodrequestURI
- the relative URIhandler
- the handler called when the request is ready to be sent
-
request
public void request(HttpMethod method, String requestURI)
Create an HTTP request to send to the server at the default host and port. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodrequestURI
- the relative URI
-
rxRequest
public io.reactivex.Single<HttpClientRequest> rxRequest(HttpMethod method, String requestURI)
Create an HTTP request to send to the server at the default host and port. Thehandler
is called when the request is ready to be sent.- Parameters:
method
- the HTTP methodrequestURI
- the relative URI- Returns:
-
webSocket
public void webSocket(int port, String host, String requestURI, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket to the specified port, host and relative request URI- Parameters:
port
- the porthost
- the hostrequestURI
- the relative URIhandler
- handler that will be called with the WebSocket when connected
-
webSocket
public void webSocket(int port, String host, String requestURI)
Connect a WebSocket to the specified port, host and relative request URI- Parameters:
port
- the porthost
- the hostrequestURI
- the relative URI
-
rxWebSocket
public io.reactivex.Single<WebSocket> rxWebSocket(int port, String host, String requestURI)
Connect a WebSocket to the specified port, host and relative request URI- Parameters:
port
- the porthost
- the hostrequestURI
- the relative URI- Returns:
-
webSocket
public void webSocket(String host, String requestURI, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket to the host and relative request URI and default port- Parameters:
host
- the hostrequestURI
- the relative URIhandler
- handler that will be called with the WebSocket when connected
-
webSocket
public void webSocket(String host, String requestURI)
Connect a WebSocket to the host and relative request URI and default port- Parameters:
host
- the hostrequestURI
- the relative URI
-
rxWebSocket
public io.reactivex.Single<WebSocket> rxWebSocket(String host, String requestURI)
Connect a WebSocket to the host and relative request URI and default port- Parameters:
host
- the hostrequestURI
- the relative URI- Returns:
-
webSocket
public void webSocket(String requestURI, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket at the relative request URI using the default host and port- Parameters:
requestURI
- the relative URIhandler
- handler that will be called with the WebSocket when connected
-
webSocket
public void webSocket(String requestURI)
Connect a WebSocket at the relative request URI using the default host and port- Parameters:
requestURI
- the relative URI
-
rxWebSocket
public io.reactivex.Single<WebSocket> rxWebSocket(String requestURI)
Connect a WebSocket at the relative request URI using the default host and port- Parameters:
requestURI
- the relative URI- Returns:
-
webSocket
public void webSocket(WebSocketConnectOptions options, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket with the specified options.- Parameters:
options
- the request optionshandler
-
-
webSocket
public void webSocket(WebSocketConnectOptions options)
Connect a WebSocket with the specified options.- Parameters:
options
- the request options
-
rxWebSocket
public io.reactivex.Single<WebSocket> rxWebSocket(WebSocketConnectOptions options)
Connect a WebSocket with the specified options.- Parameters:
options
- the request options- Returns:
-
webSocketAbs
public void webSocketAbs(String url, MultiMap headers, WebsocketVersion version, List<String> subProtocols, Handler<AsyncResult<WebSocket>> handler)
Connect a WebSocket with the specified absolute url, with the specified headers, using the specified version of WebSockets, and the specified WebSocket sub protocols.- Parameters:
url
- the absolute urlheaders
- the headersversion
- the WebSocket versionsubProtocols
- the subprotocols to usehandler
- handler that will be called if WebSocket connection fails
-
webSocketAbs
public void webSocketAbs(String url, MultiMap headers, WebsocketVersion version, List<String> subProtocols)
Connect a WebSocket with the specified absolute url, with the specified headers, using the specified version of WebSockets, and the specified WebSocket sub protocols.- Parameters:
url
- the absolute urlheaders
- the headersversion
- the WebSocket versionsubProtocols
- the subprotocols to use
-
rxWebSocketAbs
public io.reactivex.Single<WebSocket> rxWebSocketAbs(String url, MultiMap headers, WebsocketVersion version, List<String> subProtocols)
Connect a WebSocket with the specified absolute url, with the specified headers, using the specified version of WebSockets, and the specified WebSocket sub protocols.- Parameters:
url
- the absolute urlheaders
- the headersversion
- the WebSocket versionsubProtocols
- the subprotocols to use- Returns:
-
updateSSLOptions
public void updateSSLOptions(SSLOptions options, Handler<AsyncResult<Void>> handler)
LikeupdateSSLOptions(io.vertx.core.net.SSLOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>)
but supplying a handler that will be called when the update happened (or has failed).- Parameters:
options
- the new SSL optionshandler
- the update handler
-
updateSSLOptions
public void updateSSLOptions(SSLOptions options)
LikeupdateSSLOptions(io.vertx.core.net.SSLOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>)
but supplying a handler that will be called when the update happened (or has failed).- Parameters:
options
- the new SSL options
-
rxUpdateSSLOptions
public io.reactivex.Completable rxUpdateSSLOptions(SSLOptions options)
LikeupdateSSLOptions(io.vertx.core.net.SSLOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>)
but supplying a handler that will be called when the update happened (or has failed).- Parameters:
options
- the new SSL options- Returns:
-
connectionHandler
public HttpClient connectionHandler(Handler<HttpConnection> handler)
Set a connection handler for the client. This handler is called when a new connection is established.- Parameters:
handler
-- Returns:
- a reference to this, so the API can be used fluently
-
redirectHandler
public HttpClient redirectHandler(Function<HttpClientResponse,Future<RequestOptions>> handler)
Set a redirect handler for the http client.The redirect handler is called when a
3xx
response is received and the request is configured to follow redirects withHttpClientRequest.setFollowRedirects(boolean)
.The redirect handler is passed the
HttpClientResponse
, it can return anHttpClientRequest
ornull
.- when null is returned, the original response is processed by the original request response handler
- when a new
Future
is returned, the client will send this new request
The handler must return a
Future
unsent so the client can further configure it and send it.- Parameters:
handler
- the new redirect handler- Returns:
- a reference to this, so the API can be used fluently
-
redirectHandler
public HttpClient redirectHandler(io.reactivex.functions.Function<HttpClientResponse,io.reactivex.Single<RequestOptions>> handler)
Set a redirect handler for the http client.The redirect handler is called when a
3xx
response is received and the request is configured to follow redirects withHttpClientRequest.setFollowRedirects(boolean)
.The redirect handler is passed the
HttpClientResponse
, it can return anHttpClientRequest
ornull
.- when null is returned, the original response is processed by the original request response handler
- when a new
Future
is returned, the client will send this new request
The handler must return a
Future
unsent so the client can further configure it and send it.- Parameters:
handler
- the new redirect handler- Returns:
- a reference to this, so the API can be used fluently
-
close
public void close(Handler<AsyncResult<Void>> handler)
Close the client. Closing will close down any pooled connections. Clients should always be closed after use.- Parameters:
handler
-
-
close
public void close()
Close the client. Closing will close down any pooled connections. Clients should always be closed after use.
-
rxClose
public io.reactivex.Completable rxClose()
Close the client. Closing will close down any pooled connections. Clients should always be closed after use.- Returns:
-
newInstance
public static HttpClient newInstance(HttpClient arg)
-
-