Package org.eclipse.jetty.client
The core class is HttpClient
, which acts as a central configuration object (for example
for idle timeouts
, max connections per destination
, etc.) and as a factory for Request
objects.
The HTTP protocol is based on the request/response paradigm, a unit that in this implementation is called
exchange and is represented by HttpExchange
.
An initial request may trigger a sequence of exchanges with one or more servers, called a conversation
and represented by HttpConversation
. A typical example of a conversation is a redirect, where
upon a request for a resource URI, the server replies with a redirect (for example with the 303 status code)
to another URI. This conversation is made of a first exchange made of the original request and its 303 response,
and of a second exchange made of the request for the new URI and its 200 response.
HttpClient
holds a number of destinations
, which in turn hold a number of
pooled connections
.
When a request is sent, its exchange is associated to a connection, either taken from an idle queue or created
anew, and when both the request and response are completed, the exchange is disassociated from the connection.
Conversations may span multiple connections on different destinations, and therefore are maintained at the
HttpClient
level.
Applications may decide to send the request and wait for the response in a blocking way, using
Request.send()
.
Alternatively, application may ask to be notified of response events asynchronously, using
Request.send(org.eclipse.jetty.client.api.Response.CompleteListener)
.
-
Interface Summary Interface Description AsyncContentProvider Deprecated. no replacement, useRequest.Content
instead.AsyncContentProvider.Listener A listener that is notified of content availabilityConnectionPool Client-side connection pool abstraction.ConnectionPool.Factory Factory for ConnectionPool instances.ConnectionPool.MaxUsable Marks a connection as being usable for a maximum number of requests.ConnectionPool.Multiplexable Marks a connection as supporting multiplexed requests.ContentDecoder ContentDecoder
decodes content bytes of a response.HttpClientTransport HttpClientTransport
represents what transport implementations should provide in order to plug-in a different transport forHttpClient
.HttpDestination.Multiplexed HttpUpgrader HttpUpgrader prepares a HTTP request to upgrade from one protocol to another, and implements the upgrade mechanism.HttpUpgrader.Factory A factory forHttpUpgrader
s.IConnection ProtocolHandler A protocol handler performs HTTP protocol operations on behalf of the application, typically like a browser would.Synchronizable Implementations of this interface expose a lock object viaSynchronizable.getLock()
so that callers can synchronize externally on that lock: -
Class Summary Class Description AbstractConnectionPool AbstractConnectorHttpClientTransport AbstractHttpClientTransport AuthenticationProtocolHandler ContentDecoder.Factory Factory forContentDecoder
s; subclasses must implementContentDecoder.Factory.newContentDecoder()
.ContinueProtocolHandler A protocol handler that handles the 100 response code.DuplexConnectionPool DuplexHttpDestination A destination for those network transports that are duplex (e.g.GZIPContentDecoder ContentDecoder
for the "gzip" encoding.GZIPContentDecoder.Factory SpecializedContentDecoder.Factory
for the "gzip" encoding.HttpAuthenticationStore HttpChannel HttpClient HttpClient provides an efficient, asynchronous, non-blocking implementation to perform HTTP requests to a server through a simple API that offers also blocking semantic.HttpConnection HttpContentResponse HttpConversation HttpDestination HttpExchange HttpProxy HttpProxy.TunnelRequest HttpReceiver HttpReceiver
provides the abstract code to implement the various steps of the receive of HTTP responses.HttpRedirector Utility class that handles HTTP redirects.HttpRequest HttpResponse HttpSender HttpSender abstracts the algorithm to send HTTP requests, so that subclasses only implement the transport-specific code to send requests over the wire, implementingHttpSender.sendHeaders(HttpExchange, ByteBuffer, boolean, Callback)
andHttpSender.sendContent(HttpExchange, ByteBuffer, boolean, Callback)
.LeakTrackingConnectionPool MultiplexConnectionPool MultiplexHttpDestination A destination for those transports that are multiplex (e.g.Origin Class that groups the elements that uniquely identify a destination.Origin.Address Origin.Protocol The representation of a network protocol.ProtocolHandlers A container forProtocolHandler
s accessible fromHttpClient.getProtocolHandlers()
.ProxyAuthenticationProtocolHandler A protocol handler that handles the 401 response code in association with theProxy-Authenticate
header.ProxyConfiguration The configuration of the forward proxy to use withHttpClient
.ProxyConfiguration.Proxy ProxyProtocolClientConnectionFactory ClientConnectionFactory for the PROXY protocol.ProxyProtocolClientConnectionFactory.ProxyProtocolConnection ProxyProtocolClientConnectionFactory.V1 A ClientConnectionFactory for the PROXY protocol version 1.ProxyProtocolClientConnectionFactory.V1.Tag PROXY protocol version 1 metadata holder to be used in conjunction withRequest.tag(Object)
.ProxyProtocolClientConnectionFactory.V2 A ClientConnectionFactory for the PROXY protocol version 2.ProxyProtocolClientConnectionFactory.V2.Tag PROXY protocol version 2 metadata holder to be used in conjunction withRequest.tag(Object)
.ProxyProtocolClientConnectionFactory.V2.Tag.TLV RandomConnectionPool AConnectionPool
that provides connections randomly among the ones that are available.RedirectProtocolHandler A protocol handler that handles redirect status codes 301, 302, 303, 307 and 308.RequestNotifier ResponseNotifier RoundRobinConnectionPool AConnectionPool
that attempts to provide connections using a round-robin algorithm.SendFailure Socks4Proxy Socks4Proxy.Socks4ProxyClientConnectionFactory TimeoutCompleteListener Deprecated. Do not use it, useCyclicTimeouts
instead.UpgradeProtocolHandler A protocol handler that handles HTTP 101 responses.ValidatingConnectionPool A connection pool that validates connections before making them available for use.WWWAuthenticationProtocolHandler A protocol handler that handles the 401 response code in association with theWWW-Authenticate
header. -
Enum Summary Enum Description ProxyProtocolClientConnectionFactory.V2.Tag.Command ProxyProtocolClientConnectionFactory.V2.Tag.Family ProxyProtocolClientConnectionFactory.V2.Tag.Protocol -
Exception Summary Exception Description HttpRequestException HttpResponseException