## Package HTTPClient

This package provides a complete http client library.

See:
Description

Interface Summary
AuthorizationHandler: This is the interface that an Authorization handler must implement.
AuthorizationPrompter: This is the interface that a username/password prompter must implement.
CookiePolicyHandler: This is the interface that a cookie policy handler must implement.
FilenameMangler: `Codecs.mpFormDataDecode` and `Codecs.mpFormDataEncode` may be handed an instance of a class which implements this interface in order to control names of the decoded files or the names sent in the encoded data.
GlobalConstants: This interface defines various global constants.
HashVerifier: This interface defines a hash verifier.
HTTPClientModule: This is the interface that a module must implement.
HTTPClientModuleConstants: This interface defines the return codes that the handlers in modules may return.
RoRequest: This interface represents the read-only interface of an http request.
RoResponse: This interface represents read-only interface of an intermediate http response.

Class Summary
AuthorizationInfo: Holds the information for an authorization response.
AuthorizationModule: This module handles authentication requests.
BasicCookieBox: A simple popup that asks whether the cookie should be accepted or rejected, or if cookies from whole domains should be silently accepted or rejected.
BufferedInputStream: This class is similar to java.io.BufferedInputStream, except that it fixes certain bugs and provides support for finding multipart boundaries.
ChunkedInputStream: This class de-chunks an input stream.
CIHashtable: This class implements a Hashtable with case-insensitive Strings as keys.
CIHashtableEnumeration: A simple enumerator which delegates everything to the real enumerator.
CIString: This class' raison d'etre is that I want to use a Hashtable using Strings as keys and I want the lookup be case insensitive, but I also want to be able retrieve the keys with original case (otherwise I could just use toLowerCase() in the get() and put()).
Codecs: This class collects various encoders and decoders.
ContentEncodingModule: This module handles the Content-Encoding response header.
ContentMD5Module: This module handles the Content-MD5 response header.
Cookie: This class represents an http cookie as specified in Netscape's cookie spec; however, because not even Netscape follows their own spec, and because very few folks out there actually read specs but instead just look whether Netscape accepts their stuff, the Set-Cookie header field parser actually tries to follow what Netscape has implemented, instead of what the spec says.
Cookie2: This class represents an http cookie as specified in the HTTP State Management Mechanism spec (also known as a version 1 cookie).
CookieModule: This module handles Netscape cookies (also called Version 0 cookies) and Version 1 cookies.
DefaultAuthHandler: This class is the default authorization handler.
DefaultCookiePolicyHandler: A simple cookie policy handler.
DefaultModule: This is the default module which gets called after all other modules have done their stuff.
HTTPConnection: This class implements http protocol requests; it contains most of HTTP/1.1 and ought to be unconditionally compliant.
HttpHeaderElement: This class holds a description of an http header element.
HttpOutputStream: This class provides an output stream for requests.
HTTPResponse: This defines the http-response class returned by the requests.
HttpURLConnection: This class is a wrapper around HTTPConnection providing the interface defined by java.net.URLConnection and java.net.HttpURLConnection.
IdempotentSequence: This class checks whether a sequence of requests is idempotent.
LinkedList: This class implements a singly linked list.
LinkElement: The represents a single element in the linked list.
Log: This is a simple logger for the HTTPClient.
MD5: Some utility methods for digesting info using MD5.
MD5InputStream: This class calculates a running md5 digest of the data read.
NVPair: This class holds a Name/Value pair of strings.
RedirectionModule: This module handles the redirection status codes 301, 302, 303, 305, 306 and 307.
Request: This class represents an http request.
RespInputStream: This is the InputStream that gets returned to the user.
Response: This class represents an intermediate response.
ResponseHandler: This holds various information about an active response.
RetryModule: This module handles request retries when a connection closes prematurely.
Separator: A simple separator element.
SimpleAuthPopup
SimpleAuthPrompt: This class implements a simple command line prompter that request username and password used for the "basic" and "digest" authentication schemes.
SocketTimeout: This thread is used to reap idle connections.
SocksClient: This class implements a SOCKS Client.
StreamDemultiplexor: This class handles the demultiplexing of input stream.
TransferEncodingModule: This module handles the TransferEncoding response header.
UncompressInputStream: This class decompresses an input stream containing data compressed with the unix "compress" utility (LZC, a LZW variant).
URI: This class represents a generic URI, as defined in RFC-2396.
Util: This class holds various utility methods.
VerifyDigest: This verifies the "digest" from rfc-2069
VerifyMD5
VerifyRspAuth: This verifies the "rspauth" from draft-ietf-http-authentication-03

Exception Summary
AuthSchemeNotImplException: Signals that the handling of a authorization scheme is not implemented.
ModuleException: Signals that an exception occured in a module.
ParseException: Signals that something went wrong while parsing data.
ProtocolNotSuppException: Signals that the protocol is not supported.
RetryException: Signals that an exception was thrown and caught, and the request was retried.
SocksException: Signals that an error was received while trying to set up a connection with the Socks server.

## Package HTTPClient Description

This package provides a complete http client library. For details see the accompanying documentation and the `HTTPConnection` class.