The HTTP protocol is based on the request/response paradigm, a unit that in this implementation is called
exchange and is represented by
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.
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
Applications may decide to send the request and wait for the response in a blocking way, using
Alternatively, application may ask to be notified of response events asynchronously, using
ClassDescriptionDeprecated.no replacement, use
Request.Contentinstead.A listener that is notified of content availabilityClient-side connection pool abstraction.Factory for ConnectionPool instances.Marks a connection as being usable for a maximum number of requests.Marks a connection as supporting multiplexed requests.
ContentDecoderdecodes content bytes of a response.A protocol handler that handles the 100 response code.A destination for those network transports that are duplex (e.g.
ContentDecoderfor the "gzip" encoding.Specialized
ContentDecoder.Factoryfor the "gzip" encoding.HttpClient provides an efficient, asynchronous, non-blocking implementation to perform HTTP requests to a server through a simple API that offers also blocking semantic.
HttpReceiverprovides the abstract code to implement the various steps of the receive of HTTP responses.Utility class that handles HTTP redirects.HttpSender abstracts the algorithm to send HTTP requests, so that subclasses only implement the transport-specific code to send requests over the wire, implementing
HttpSender.sendHeaders(HttpExchange, ByteBuffer, boolean, Callback)and
HttpSender.sendContent(HttpExchange, ByteBuffer, boolean, Callback).HttpUpgrader prepares a HTTP request to upgrade from one protocol to another, and implements the upgrade mechanism.A factory for
HttpUpgraders.A destination for those transports that are multiplex (e.g.Class that groups the elements that uniquely identify a destination.The representation of a network protocol.A protocol handler performs HTTP protocol operations on behalf of the application, typically like a browser would.A protocol handler that handles the 401 response code in association with the
Proxy-Authenticateheader.The configuration of the forward proxy to use with
HttpClient.ClientConnectionFactory for the PROXY protocol.A ClientConnectionFactory for the PROXY protocol version 1.PROXY protocol version 1 metadata holder to be used in conjunction with
Request.tag(Object).A ClientConnectionFactory for the PROXY protocol version 2.PROXY protocol version 2 metadata holder to be used in conjunction with
ConnectionPoolthat provides connections randomly among the ones that are available.A protocol handler that handles redirect status codes 301, 302, 303, 307 and 308.A
ConnectionPoolthat attempts to provide connections using a round-robin algorithm.Helper class for SOCKS5 proxying.A SOCKS5 authentication method.A factory for
Socks5.Authentications.The implementation of the
NO AUTHauthentication method defined in RFC 1928.The implementation of the
USERNAME/PASSWORDauthentication method defined in RFC 1929.Client-side proxy configuration for SOCKS5, defined by RFC 1928.Implementations of this interface expose a lock object via
Synchronizable.getLock()so that callers can synchronize externally on that lock:Deprecated.Do not use it, use
CyclicTimeoutsinstead.A protocol handler that handles HTTP 101 responses.A connection pool that validates connections before making them available for use.A protocol handler that handles the 401 response code in association with the