public interface HttpClient
As well as HTTP requests, the client can act as a factory for WebSocket websockets
.
If an instance is instantiated from an event loop then the handlers of the instance will always be called on that same event loop. If an instance is instantiated from some other arbitrary Java thread then and event loop will be assigned to the instance and used when any of its handlers are called.
Instances cannot be used from worker verticles
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the HTTP client.
|
HttpClientRequest |
connect(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP CONNECT request with the specified uri . |
void |
connectWebsocket(java.lang.String uri,
Handler<WebSocket> wsConnect)
Attempt to connect an HTML5 websocket to the specified URI
|
void |
connectWebsocket(java.lang.String uri,
WebSocketVersion wsVersion,
Handler<WebSocket> wsConnect)
Attempt to connect an HTML5 websocket to the specified URI
|
HttpClientRequest |
delete(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP DELETE request with the specified uri . |
void |
exceptionHandler(Handler<java.lang.Exception> handler)
Set an exception handler
|
HttpClientRequest |
get(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP GET request with the specified uri . |
java.lang.Integer |
getBossThreads() |
java.lang.Long |
getConnectTimeout() |
java.lang.String |
getKeyStorePassword() |
java.lang.String |
getKeyStorePath() |
int |
getMaxPoolSize()
Returns the maximum number of connections in the pool
|
void |
getNow(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This is a quick version of the
get(String, org.vertx.java.core.Handler)
method where you do not want to do anything with the request before sending. |
void |
getNow(java.lang.String uri,
java.util.Map<java.lang.String,? extends java.lang.Object> headers,
Handler<HttpClientResponse> responseHandler)
This method works in the same manner as
getNow(String, org.vertx.java.core.Handler) ,
except that it allows you specify a set of headers that will be sent with the request. |
java.lang.Integer |
getReceiveBufferSize() |
java.lang.Integer |
getSendBufferSize() |
java.lang.Integer |
getTrafficClass() |
java.lang.String |
getTrustStorePassword() |
java.lang.String |
getTrustStorePath() |
HttpClientRequest |
head(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP HEAD request with the specified uri . |
java.lang.Boolean |
isReuseAddress() |
java.lang.Boolean |
isSoLinger() |
boolean |
isSSL() |
java.lang.Boolean |
isTCPKeepAlive() |
java.lang.Boolean |
isTCPNoDelay() |
boolean |
isTrustAll() |
boolean |
isVerifyHost() |
HttpClientRequest |
options(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP OPTIONS request with the specified uri . |
HttpClientRequest |
patch(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP PATCH request with the specified uri . |
HttpClientRequest |
post(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP POST request with the specified uri . |
HttpClientRequest |
put(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP PUT request with the specified uri . |
HttpClientRequest |
request(java.lang.String method,
java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP request with the specified uri . |
HttpClient |
setBossThreads(int threads)
Set the number of boss threads to use.
|
HttpClient |
setConnectTimeout(long timeout)
Set the connect timeout in milliseconds.
|
HttpClient |
setHost(java.lang.String host)
Set the host that the client will attempt to connect to the server on to
host . |
HttpClient |
setKeepAlive(boolean keepAlive)
If
keepAlive is true then, after the request has ended the connection will be returned to the pool
where it can be used by another request. |
HttpClient |
setKeyStorePassword(java.lang.String pwd)
Set the password for the SSL key store.
|
HttpClient |
setKeyStorePath(java.lang.String path)
Set the path to the SSL key store.
|
HttpClient |
setMaxPoolSize(int maxConnections)
Set the maximum pool size
|
HttpClient |
setPort(int port)
Set the port that the client will attempt to connect to the server on to
port . |
HttpClient |
setReceiveBufferSize(int size)
Set the TCP receive buffer size for connections created by this instance to
size in bytes. |
HttpClient |
setReuseAddress(boolean reuse)
Set the TCP reuseAddress setting for connections created by this instance to
reuse . |
HttpClient |
setSendBufferSize(int size)
Set the TCP send buffer size for connections created by this instance to
size in bytes. |
HttpClient |
setSoLinger(boolean linger)
Set the TCP soLinger setting for connections created by this instance to
linger . |
HttpClient |
setSSL(boolean ssl)
If
ssl is true , this signifies that any connections will be SSL connections. |
HttpClient |
setTCPKeepAlive(boolean keepAlive)
Set the TCP keepAlive setting for connections created by this instance to
keepAlive . |
HttpClient |
setTCPNoDelay(boolean tcpNoDelay)
If
tcpNoDelay is set to true then Nagle's algorithm
will turned off for the TCP connections created by this instance. |
HttpClient |
setTrafficClass(int trafficClass)
Set the TCP trafficClass setting for connections created by this instance to
trafficClass . |
HttpClient |
setTrustAll(boolean trustAll)
If you want an SSL client to trust *all* server certificates rather than match them
against those in its trust store, you can set this to true.
|
HttpClient |
setTrustStorePassword(java.lang.String pwd)
Set the password for the SSL trust store.
|
HttpClient |
setTrustStorePath(java.lang.String path)
Set the path to the SSL trust store.
|
HttpClient |
setVerifyHost(boolean verifyHost)
If
verifyHost is true , then the client will try to validate the remote server's certificate
hostname against the requested host. |
HttpClientRequest |
trace(java.lang.String uri,
Handler<HttpClientResponse> responseHandler)
This method returns an
HttpClientRequest instance which represents an HTTP TRACE request with the specified uri . |
void exceptionHandler(Handler<java.lang.Exception> handler)
HttpClient setMaxPoolSize(int maxConnections)
The client will maintain up to maxConnections
HTTP connections in an internal pool
int getMaxPoolSize()
HttpClient setKeepAlive(boolean keepAlive)
keepAlive
is true
then, after the request has ended the connection will be returned to the pool
where it can be used by another request. In this manner, many HTTP requests can be pipe-lined over an HTTP connection.
Keep alive connections will not be closed until the close()
method is invoked.
If keepAlive
is false
then a new connection will be created for each request and it won't ever go in the pool,
the connection will closed after the response has been received. Even with no keep alive,
the client will not allow more than getMaxPoolSize()
connections to be created at any one time.
HttpClient setPort(int port)
port
. The default value is
80
HttpClient setHost(java.lang.String host)
host
. The default value is
localhost
void connectWebsocket(java.lang.String uri, Handler<WebSocket> wsConnect)
The connect is done asynchronously and wsConnect
is called back with the websocket
void connectWebsocket(java.lang.String uri, WebSocketVersion wsVersion, Handler<WebSocket> wsConnect)
This version of the method allows you to specify the websockets version using the wsVersion parameter
The connect is done asynchronously and wsConnect
is called back with the websocket
void getNow(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
get(String, org.vertx.java.core.Handler)
method where you do not want to do anything with the request before sending.
Normally with any of the HTTP methods you create the request then when you are ready to send it you call
HttpClientRequest.end()
on it. With this method the request is immediately sent.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
void getNow(java.lang.String uri, java.util.Map<java.lang.String,? extends java.lang.Object> headers, Handler<HttpClientResponse> responseHandler)
getNow(String, org.vertx.java.core.Handler)
,
except that it allows you specify a set of headers
that will be sent with the request.HttpClientRequest options(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP OPTIONS request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest get(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP GET request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest head(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP HEAD request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest post(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP POST request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest put(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP PUT request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest delete(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP DELETE request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest trace(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP TRACE request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest connect(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP CONNECT request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest patch(java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP PATCH request with the specified uri
.
When an HTTP response is received from the server the responseHandler
is called passing in the response.
HttpClientRequest request(java.lang.String method, java.lang.String uri, Handler<HttpClientResponse> responseHandler)
HttpClientRequest
instance which represents an HTTP request with the specified uri
.
The specific HTTP method (e.g. GET, POST, PUT etc) is specified using the parameter method
When an HTTP response is received from the server the responseHandler
is called passing in the response.
void close()
HttpClient setSSL(boolean ssl)
ssl
is true
, this signifies that any connections will be SSL connections.HttpClient setVerifyHost(boolean verifyHost)
verifyHost
is true
, then the client will try to validate the remote server's certificate
hostname against the requested host. Should default to 'true'.
This method should only be used in SSL mode, i.e. after setSSL(boolean)
has been set to true
.HttpClient setKeyStorePath(java.lang.String path)
setSSL(boolean)
has been set to true
.The SSL key store is a standard Java Key Store, and will contain the client certificate. Client certificates are only required if the server requests client authentication.
HttpClient setKeyStorePassword(java.lang.String pwd)
setSSL(boolean)
has been set to true
.HttpClient setTrustStorePath(java.lang.String path)
setSSL(boolean)
has been set to true
.
The trust store is a standard Java Key Store, and should contain the certificates of any servers that the client trusts.
If you wish the client to trust all server certificates you can use the setTrustAll(boolean)
method.
HttpClient setTrustStorePassword(java.lang.String pwd)
setSSL(boolean)
has been set to true
.HttpClient setTrustAll(boolean trustAll)
Use this with caution as you may be exposed to "main in the middle" attacks
trustAll
- Set to true if you want to trust all server certificatesHttpClient setTCPNoDelay(boolean tcpNoDelay)
tcpNoDelay
is set to true
then Nagle's algorithm
will turned off for the TCP connections created by this instance.HttpClient setSendBufferSize(int size)
size
in bytes.HttpClient setReceiveBufferSize(int size)
size
in bytes.HttpClient setTCPKeepAlive(boolean keepAlive)
keepAlive
.HttpClient setReuseAddress(boolean reuse)
reuse
.HttpClient setSoLinger(boolean linger)
linger
.HttpClient setTrafficClass(int trafficClass)
trafficClass
.HttpClient setConnectTimeout(long timeout)
HttpClient setBossThreads(int threads)
java.lang.Boolean isTCPNoDelay()
java.lang.Integer getSendBufferSize()
java.lang.Integer getReceiveBufferSize()
java.lang.Boolean isTCPKeepAlive()
java.lang.Boolean isReuseAddress()
java.lang.Boolean isSoLinger()
java.lang.Integer getTrafficClass()
java.lang.Long getConnectTimeout()
java.lang.Integer getBossThreads()
boolean isSSL()
boolean isVerifyHost()
boolean isTrustAll()
java.lang.String getKeyStorePath()
java.lang.String getKeyStorePassword()
java.lang.String getTrustStorePath()
java.lang.String getTrustStorePassword()