# Class: HttpClient

## vertx-js/http_client~ HttpClient

#### new HttpClient()

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.

Source:
  - vertx-js/http_client.js, line 43

### Methods

#### close()

Close the client. Closing will close down any pooled connections. Clients should always be closed after use.

Source:
  - vertx-js/http_client.js, line 933

#### delete(port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP DELETE request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 544

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### deleteAbs(absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP DELETE request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 582

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### get(port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP GET request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 136

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### getAbs(absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP GET request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 174

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### getNow(port, host, requestURI, responseHandler) → {HttpClient}

Sends an HTTP GET request to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 196

##### Returns:

a reference to this, so the API can be used fluently

Type
  HttpClient

#### head(port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP HEAD request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 292

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### headAbs(absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP HEAD request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 330

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### headNow(port, host, requestURI, responseHandler) → {HttpClient}

Sends an HTTP HEAD request to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 352

##### Returns:

a reference to this, so the API can be used fluently

Type
  HttpClient

#### isMetricsEnabled() → {boolean}

Whether the metrics are enabled for this measured object

Source:
  - vertx-js/http_client.js, line 56

##### Returns:

true if the metrics are enabled

Type
  boolean

#### options(port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP OPTIONS request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 388

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### optionsAbs(absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP OPTIONS request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 426

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### optionsNow(port, host, requestURI, responseHandler) → {HttpClient}

Sends an HTTP OPTIONS request to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 448

##### Returns:

a reference to this, so the API can be used fluently

Type
  HttpClient

#### post(port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP POST request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 232

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### postAbs(absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP POST request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 270

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### put(port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP PUT request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 484

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### putAbs(absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP PUT request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 522

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### redirectHandler(handler) → {HttpClient}

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 with HttpClientRequest#setFollowRedirects.

The redirect handler is passed the HttpClientResponse, it can return an HttpClientRequest or `null`.

- 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:

Name | Type | Description
--- | --- | ---
`handler` | todo | the new redirect handler

Source:
  - vertx-js/http_client.js, line 915

##### Returns:

a reference to this, so the API can be used fluently

Type
  HttpClient

#### request(method, port, host, requestURI, responseHandler) → {HttpClientRequest}

Create an HTTP request to send to the server at the specified host and port, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`method` | Object | the HTTP method
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 75

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### requestAbs(method, absoluteURI, responseHandler) → {HttpClientRequest}

Create an HTTP request to send to the server using an absolute URI, specifying a response handler to receive the response

##### Parameters:

Name | Type | Description
--- | --- | ---
`method` | Object | the HTTP method
`absoluteURI` | string | the absolute URI
`responseHandler` | function | the response handler

Source:
  - vertx-js/http_client.js, line 114

##### Returns:

an HTTP client request object

Type
  HttpClientRequest

#### websocket(port, host, requestURI, headers, version, subProtocols, wsConnect, failureHandler) → {HttpClient}

Connect a WebSocket to the specified port, host and relative request URI, with the specified headers, using the specified version of WebSockets, and the specified websocket sub protocols

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`headers` | MultiMap | the headers
`version` | Object | the websocket version
`subProtocols` | string | the subprotocols to use
`wsConnect` | function | handler that will be called with the websocket when connected
`failureHandler` | function | handler that will be called if websocket connection fails

Source:
  - vertx-js/http_client.js, line 608

##### Returns:

a reference to this, so the API can be used fluently

Type
  HttpClient

#### websocketAbs(url, headers, version, subProtocols, wsConnect, failureHandler) → {HttpClient}

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:

Name | Type | Description
--- | --- | ---
`url` | string | the absolute url
`headers` | MultiMap | the headers
`version` | Object | the websocket version
`subProtocols` | string | the subprotocols to use
`wsConnect` | function | handler that will be called with the websocket when connected
`failureHandler` | function | handler that will be called if websocket connection fails

Source:
  - vertx-js/http_client.js, line 818

##### Returns:

a reference to this, so the API can be used fluently

Type
  HttpClient

#### websocketStream(port, host, requestURI, headers, version, subProtocols) → {ReadStream}

Create a WebSocket stream to the specified port, host and relative request URI, with the specified headers, using the specified version of WebSockets, and the specified websocket sub protocols

##### Parameters:

Name | Type | Description
--- | --- | ---
`port` | number | the port
`host` | string | the host
`requestURI` | string | the relative URI
`headers` | MultiMap | the headers
`version` | Object | the websocket version
`subProtocols` | string | the subprotocols to use

Source:
  - vertx-js/http_client.js, line 843

##### Returns:

a stream emitting a WebSocket event when the client connection has been upgraded to a websocket

Type
  ReadStream

#### websocketStreamAbs(url, headers, version, subProtocols) → {ReadStream}

Create a WebSocket stream with the specified absolute url, the specified headers, using the specified version of WebSockets, and the specified websocket sub protocols.

##### Parameters:

Name | Type | Description
--- | --- | ---
`url` | string | the absolute url
`headers` | MultiMap | the headers
`version` | Object | the websocket version
`subProtocols` | string | the subprotocols to use

Source:
  - vertx-js/http_client.js, line 891

##### Returns:

a stream emitting a WebSocket event when the client connection has been upgraded to a websocket

Type
  ReadStream