Jetty HTTP Client
The HttpClient is an implementation of the client API. It makes it easy to conduct exchanges with a server, and to process the responses. It can use either blocking or non-blocking connectors, the default is to use non-blocking. The HttpClient can also do SSL, use proxies and authentication.
By nature it is asynchronous. To begin a request, create an HttpExchange instance (or a subclass of it). HttpExchange provides a number of callback methods that you implement in order to receive reply. You can be notified of the receipt of particular parts of the response, such as the headers or just the content. To start the request, call
HttpClient.send(HttpExchange) method. A single HttpClient can have many exchanges outstanding.
Asynchronous Client Example
Synchronous Client Example
To get HttpExchange.ContentExchange to do synchronous work, one can create a class FailableContentExchange
and use it to do a synchronous request, as described in the example below